Сначала посмотрите мой структурный код.Мне нужно получить ограниченные предложения для пользователя автомобиля.У меня есть жесткий код 3 пакета.Бесплатное использование получил, когда зарегистрирован.Серебро и золото.Если пользователь подписан на серебро, см. 8 предложений, если подписаться на золото, см. 15 предложений.Если нет подписки смотрите 2 предложения (бесплатный пакет).Мой код:
Миграция пользователя:
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
Модель пользователя:
public function subscriptions_users(){
return $this->hasMany('App\Subscription');
}
public function cars(){
return $this->hasMany('App\Car');
}
public function offers(){
return $this->hasMany('App\Offer');
}
Миграция автомобиля:
$table->bigIncrements('id');
$table->string('car_type');
$table->string('mark');
$table->string('model');
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
Модель автомобиля:
public function images() {
return $this->hasMany(CarImages::class);
}
public function user() {
return $this->belongsTo('App\User');
}
public function offer() {
return $this->hasMany('App\Offer');
}
Предложение миграции:
$table->increments('id');
$table->integer('price');
$table->unsignedInteger('user_id');
$table->unsignedInteger('car_id');
Модель предложения:
public function car() {
return $this->belongsTo('App\Car');
}
public function user() {
return $this->belongsTo('App\User');
}
Миграция подписки:
$table->increments('id');
$table->string('subscription');
$table->integer('numberOfOffers');
Модель подписки:
public function users(){
return $this->hasMany('App\User');
}
Subscription_user (сводная таблица с пользователем и подпиской):
$table->increments('id');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); //foreign key relation
$table->integer('subscription_id')->unsigned()->index();
$table->foreign('subscription_id')->references('id')->on('subscriptions')->onDelete('cascade');
Subscription_user модель:
public function users(){
return $this->belongsToMany('App\User');
}
public function subscriptions() {
return $this->belongsToMany('App\Subscription');
}
Все работает нормально, просто мне нужно получить предложения для автомобиля в ограниченной версии,Ограниченная версия - поле $ table-> integer ('numberOfOffers');в таблице подписки. У меня может быть проблема с отношением .. Я пробую это, но безуспешно:
public function getOffers($carID) {
$car = Car::find($carID);
$offers = $car->offer()->limit(THIS IS PROBLEM I DON'T KNOW HOT TO CONNECT USER WITH numberOfOffers)->get();
return response()->json($offers);
}