私はLaravel 5.2を使用しており、以下のように1対1の関係を作成しました。Laravelで1対1の関係を削除する
$driver = Driver::find($driver->id);
$vehicle = Vehicle::find($vehicleId);
$vehicle->driver()->associate($driver);
$vehicle->save();
これは完全に機能します。いくつかのシナリオでは、特定のドライバーを車両から取り外すことによってこの関係を解消する必要があります。
$driver = Driver::find($driver->id);
$vehicle = Vehicle::find($vehicleId);
$vehicle->driver_id->NULL;
$vehicle->save();
しかし、これは機能しません。私は他のアプローチを試みました。
$vehicle->driver()->delete();
$vehicle->driver()->dissociate();
次の2つのモデルがあります。
class Driver extends Model
{
public function vehicle()
{
return $this->hasOne(Vehicle::class);
}
}
class Vehicle extends Model
{
protected $primaryKey = 'vehicle_number';
public $incrementing = false;
public function driver()
{
return $this->belongsTo(Driver::class);
}
}
私の場合は何も働いていません。誰もがヒントを教えてください、そこに何が間違っていますか?
$ veh icle-> driver() - > delete();リレーションではなくドライバを削除します –
両方のモデルのコードを提供します – KuKeC
@KuKeC質問に追加されました。 – Shashika