0
我認爲標題有點混亂,所以我會盡我所能解釋這一點。在一個函數中的多個表的附加()方法(laravel)
我有什麼
汽車模型:
public function users()
{
return $this->hasMany('User','car_user');
}
用戶模型
public function cars()
{
return $this->belongsToMany('App\Models\Access\Car','car_user');
}
預訂模型
public function cars()
{
return $this->belongsToMany('App\Models\Access\Car','car_user');
}
鈣ř遷移:
$table->increments('id');
$table->string('name')->nullable();
$table->string('age')->nullable();
$table->string('model')->nullable();
用戶遷移:
$table->string('street')->nullable();
$table->string('niehgborhood')->nullable();
$table->string('city')->nullable();
$table->increments('id');
$table->string('name')->nullable();
car_user:
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->integer('car_id')->unsigned();
$table->foreign('car_id')->references('id')->on('cars');
預留:
$table->increments('id');
$table->string('from_date')->nullable();
$table->string('to_date')->nullable();
$table->string('from_time')->nullable();
$table->string('to_time')->nullable();
控制器:方法保存汽車並將其鏈接到用戶標識:
public function store(Request $request)
{
$user = JWTAuth::parseToken()->authenticate();
$new_car = new Car();
$new_car->name = $request->name;
$new_car->age = $request->age;
$new_car -> model = $request->model;
$new_car->save();
$id = $new_cars->id;
$user->cars()->attach($id);
}
我試圖瞭解/做
所以在我的控制器上面,當用戶想要買的車,我可以附上用戶ID與車輛ID。
現在,我可以做同樣的事情,如果用戶想租車幾個小時。假設我有一個帶有下拉菜單的表格,顯示用戶想要汽車的時間。我可以保存用戶和他/她想租用的汽車,包括所有這些功能嗎?
這會將時間附加到用戶感興趣的車上並且能夠通過$user->id
調用以顯示用戶想要購買和租賃的所有車輛嗎?
謝謝!
更新
感謝阿圖爾Subotkevič我現在可以節省根據他的回答中car_reservation透視表這兩款車和預訂的ID。我試着這樣做是爲了顯示所有的汽車行駛通過此功能
public function hour($id)
{
$time = Car::with('reservations')->where('id',$id)->get();
dd($time);
}
相關的時間,但我得到這個觀點
Collection {#364 ▼
#items: []
} 我敢肯定,我有一些汽車掛預約和我預訂型號現在是
public function cars()
{
return $this->belongsTo('Car','car_reservation');
}
我剛剛編輯了我的問題,請再看看(我想要了解/做什麼) – leo0019
我編輯了我的答案。 –
我認爲汽車和用戶會得到保存,但他們沒有鏈接,因爲我沒有car_reservation數據透視表。這就是爲什麼當我在郵遞員測試它返回SQLSTATE [42S02]:基表或視圖未找到:1146表'injaz.car_reservation'不存在' – leo0019