在我的代碼中,我有一個“用戶”模型和一個“ONG”模型,一個用戶有一個 ong,而該 ong 有一個“user_id”,所以當用戶創建一個 Ong 時,我想獲取用戶(正在創建)id并插入 Ong user_id 列
用戶只有在登錄后才能創建 Ong
王模型
public function user(){
return $this->belongsTo('App\Models\User');
}
翁遷移
Schema::create('ongs', function (Blueprint $table) {
$table->bigIncrements('ong_id');
$table->timestamps();
$table->string('name',100);
$table->smallInteger('user_id');
});
用戶遷移
if(!Schema::hasTable('users')){
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name', 100);
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password', 80);
$table->rememberToken();
$table->timestamps();
});}
用戶模型
public function ong(){
return $this->hasOne('App\Models\Ong');
}
OngsController 有一個 store 方法
public function store(Request $request)
{
$request->all();
$request['user_id']= $id;
}
但我怎樣才能得到'user_id'呢?
我正在使用來自 laravel/ui auth 的 Auth
現在只有這條路線,但這是形式
Route::group(['middleware'=>'web'],function(){
Route::view('/criarOng', 'ongs.create');
});
創建表單
{!! Form::open([
'method'=>'post', 'route' => 'ongs.store'
]) !!}
{!! Form::label('name', 'Nome da Ong') !!}
{!! Form::text('name') !!}
{!! Form::select('estado',['SP'=>'SP', 'RJ'=>'RJ'], null) !!}
{!! Form::label('cidade', 'Cidade da ong') !!}
{!! Form::text('cidade') !!}
{!! Form::submit('Criar') !!}
{!! Form::close() !!}
uj5u.com熱心網友回復:
您需要在 ong 表上設定外鍵。
Schema::create('ongs', function (Blueprint $table) {
$table->bigIncrements('ong_id');
$table->timestamps();
$table->string('name',100);
$table->bigInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
然后在創建 ong 時,您可以使用
public function store(Request $request)
{
$request->all();
$user_id = Auth::user()->id;
}
然后在您的 ONG 模型中
public function ong(){
return $this->hasMany('App\Models\Ong');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411087.html
標籤:
