SQLSTATE[HY000]:常规错误:1364 字段'agent_id'没有默认值



由于外键字段,我得到错误。我有两个模特(经纪人、邮政)。我无法让用户的主键保存为posts表中的外键。我可以手动插入数据,它与父表链接,但是当用户从视图中的表单插入时,它给我的错误有任何帮助吗?

<代理/strong>

namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Agent extends Model
{
use HasFactory;

public function posts(){
return $this->hasMany(Post::class);
}
}

文章

namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Post extends Model
{
use HasFactory;
public function user(){
return $this->belongsTo(Agent::class);
}
}

这是我在控制器中保存数据的方法

public function savepost(Request $request)
{
$post = new Post;
$post->title = $request->title;
$post->description = $request->description;
$post->type = $request->type;
$saved = $post->save();

if ($saved) {
return back()->with('success', 'New post has been added successfuly');
} else {
return back()->with('fail', 'Something went wrong , try again later');
}
}

在我看来,Post模型应该有agent_id,当创建新的Post时,需要agent_id与现有的user->id。因此,似乎在新的Post对象中添加了agent_id

...
use Auth;
...

public function savepost(Request $request){
$post = new Post ;
$post->title = $request->title ;
$post->description = $request->description ;
$post->type = $request->type;
$post->agent_id = Auth::user()->id;
$saved = $post->save();
if($saved){
return back()->with('success','New post has been added successfuly');
}else{
return back()->with('fail' , 'Something went wrong , try again later');
}
}

最新更新