Я пытался сохранить идентификатор пользователя из таблицы пользователя в другой машине в качестве внешнего ключа.Таблица пользователей:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('userid')->unique();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Таблица автомобилей:
public function up()
{
Schema::create('cars', function (Blueprint $table) {
$table->string('plateno')->primary()->unique();
$table->string('brand');
$table->string('model');
$table->string('user_id')->nullable();
$table->foreign('user_id')->references('userid')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->timestamps();
});
}
Модель пользователя и модель автомобиля имеют отношение 1 к 1.
class User extends Authenticatable
{use Notifiable;
protected $fillable = [
'userid', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function cars()
{
return $this->hasOne('App\Car', 'plateno' );
}
}
и вот функция хранения для CarController
public function store(Request $request)
{
$this->validate($request, [
'plateno' => 'required',
'brand' => 'required',
'model' => 'required'
]);
$cars= new \App\Car;
$cars->plateno=$request->get('plateno');
$cars->brand=$request->get('brand');
$cars->model=$request->get('model');
$cars=Auth::user()->userid;
$cars->save();
return redirect('car')->with('success', 'User car has been added.');
}
спасибо.