繁体   English   中英

SQLSTATE [HY000]:一般错误:1364 字段“agent_id”没有默认值

[英]SQLSTATE[HY000]: General error: 1364 Field 'agent_id' doesn't have a default value

由于外键字段,我收到错误。 我有两个模型(代理,邮政)。 我无法将用户的主键保存为帖子表中的外键。 我可以手动插入数据,它与父表链接,但是当用户从视图中的表单插入时,它给了我这个错误任何帮助吗?

代理人

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Agent extends Model
{
    use HasFactory;
    
    public function posts(){
        return $this->hasMany(Post::class);
    }
}

邮政

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

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时,当前user->id需要agent_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');
 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM