C'est à moi
$art = Article::where('id',$article)->firstOrFail();
$products = $art->products;
Je veux juste prendre un «produit» limite C'est une mauvaise façon
$products = $art->products->offset($offset*$limit)->take($limit)->get();
S'il vous plaît donnez-moi un coup de main!
Merci!
Vous pouvez utiliser les fonctions skip
et take
comme ci-dessous:
$products = $art->products->skip($offset*$limit)->take($limit)->get();
// skip
doit être passé param en tant que valeur entière pour ignorer les enregistrements et l'index de départ
// take
obtient une valeur entière pour obtenir le no. des enregistrements après l'index de départ défini par skip
MODIFIER
Pardon. Votre question m'a mal comprise. Si vous voulez quelque chose comme la pagination, la méthode forPage
fonctionnera pour vous. La méthode forPage fonctionne pour les collections.
REf: https://laravel.com/docs/5.1/collections#method-forpage
par exemple
$products = $art->products->forPage($page,$limit);
laravel a sa propre fonction skip
pour offset
et take
pour limit
. juste comme ci-dessous exemple de requête Laravel: -
Article::where([['user_id','=',auth()->user()->id]])
->where([['title','LIKE',"%".$text_val."%"]])
->orderBy('id','DESC')
->skip(0)
->take(2)
->get();
Laravel utilise une méthode de pagination rapide, paginate, qui ne nécessite que le nombre de données affichées par page.
//use the paginate
Book::orderBy('updated_at', 'desc')->paginate(8);
vous pouvez utiliser cette méthode: offset
, limit
, skip
take
offset , limit: où commence le réglage de l'offset, limitant la quantité de données à interroger
sauter , prendre: sauter saute quelques données et prend beaucoup de données
par exemple:
Model::offset(0)->limit(10)->get();
Model::skip(3)->take(3)->get();
//i use it in my project, work fine ~
class BookController extends Controller
{
public function getList(Request $request) {
$page = $request->has('page') ? $request->get('page') : 1;
$limit = $request->has('limit') ? $request->get('limit') : 10;
$books = Book::where('status', 0)->limit($limit)->offset(($page - 1) * $limit)->get()->toArray();
return $this->getResponse($books, count($books));
}
}
Essayez cet exemple de code:
$art = Article::where('id',$article)->firstOrFail();
$products = $art->products->take($limit);