Я пытаюсь разбить свои данные на страницы с помощью lagvel paginate. Итак, я делаю так, что у меня есть модель магазина, которая имеет отношение один ко многим с моделью купона.
class Store extends Model
{
protected $fillable =['id','name','heading_1','url','slug','image','status','total_coupon_used_times'];
public function categories()
{
return $this->belongsToMany('App\Category', 'store_categories', 'category_id', 'store_id');
}
public function coupons()
{
return $this->hasMany('App\Coupon');
}
}
Это моя модель купона, которая имеет обратное отношение один ко многим.
class Coupon extends Model
{
protected $fillable=['id','name','description','status','coupon_type','coupon_status','coupon_code','discount_amount','coupon_url','coupon_used_times','slug','store_id'];
public function store()
{
return $this->belongsTo('App\Store');
}
}
Далее, когда я попытался запросить модель своего магазина с купонами, используя paginate. Я был успешно в этом.
Вот мой контроллер магазина, в котором я успешно проделал то же самое.
class StoreController extends Controller
{
public function index(Request $request){
if($request->isMethod('get')) {
$name=$request->input('letter');
$category=$request->input('category');
$categories=Category::all();
if($name==null || $category==null){
$stores = Store::with('coupons')->paginate(15);
$storesWithCount=$this->countCoupons($stores);
return view('stores', ['stores' => $storesWithCount,'search'=>false,'categories'=>$categories]);
}else {
$stores=Store::has('categories')->where('name', 'LIKE', "$name%")->get();
$storesWithCount=$this->countCoupons($stores);
return view('stores', ['stores' => $storesWithCount,'search'=>true,'categories'=>$categories]);
}
}else{
abort(403, 'Unauthorized action.');
}
}
}
Но я попытался сделать то же самое с моей моделью купона в моем контроллере купона, это дает мне только нумерацию страниц безданные.
class CouponController extends Controller
{
public function index(Request $request){
if($request->isMethod('get')){
$coupons=Coupon::with('store')->paginate();
return view('coupons',['coupons'=>$coupons]);
}else{
abort(403, 'Unauthorized action.');
}
}
}
вот изображение данных, которое возвращается к просмотру
Контроллер купонов также возвращает данные, если заменить paginate на get ().
public function index(Request $request){
if($request->isMethod('get')){
$coupons=Coupon::with('store')->paginate();
die($coupons);
return view('coupons',['coupons'=>$coupons]);
}else{
abort(403, 'Unauthorized action.');
}
}
Так что, если у кого-то есть представление о том, что я делаю неправильно, дайте мне знать. Спасибо С наилучшими пожеланиями.