【问题标题】:Integrity constraint violation: 1048 Column违反完整性约束:1048 列
【发布时间】:2019-10-20 22:11:50
【问题描述】:

enter image description here

enter image description here

您好,我的数据库中有错误。用户在用户表中注册,现在他必须发布广告。我正在尝试在广告表中获取他的 ID。 但它返回给我这个错误:

SQLSTATE [23000]:违反完整性约束:1048 列 'user_id' 不能为空 (SQL: insert intoads (user_id, services,head,level_study,language,experience, localization,description,contact,updated_at,created_at) 值(?,户主,管家,BAC+2,一点,2年, Yopougon, pnjjjk, 09789070, 2019-06-05 08:31:38, 2019-06-05 08:31:38))

public function store(Adstore $request)
{
    $validated = $request->validated();
    $user_id = Auth::user()['id'];
    $ad = new Ad();
    $ad->user_id = $user_id;
    $ad->services = $validated['dropdown_service'];
    $ad->titre = $validated['title'];
    $ad->niveau_etude = $validated['dropdown_etude'];
    $ad->langue = $validated['langue'];
    $ad->experience = $validated ['experience'];
    $ad->localisation = $validated ['local'];
    $ad->description = $validated ['description'];
    $ad->contact = $validated ['contact'];
    $ad->save();
    return redirect()->route('accueil')->with('success','Votre annonce a été postée.');
}

【问题讨论】:

  • $user_id 包含什么? var_dump($user_id);
  • 尝试使用dd($user_id); 转储$user_id 的内容。还可以考虑转储整个用户对象:dd(Auth::user()); 你能发布结果吗?
  • 尝试 $user_id = Auth::user()->id 代替 Auth::user()['id'];顺便说一句,小优化:使用质量分配而不是单个属性分配。它会更干净。
  • 当我在这里执行此操作时出现错误:尝试获取非对象的属性 'id' 如果我输入注释 // $ user_id = Auth :: user () -> id;我像那样转储 dd (Auth :: user ());我有这个结果:null。
  • 您需要先通过身份验证才能使用Auth::user()

标签: php mysql laravel laravel-5.8 mysql-error-1048


【解决方案1】:

对代码进行一些更改,如下所示:

在控制器中:

public function store(Adstore $request)
{
    $validated = $request->validated();

    $user_id = Auth::user()->id;

    $ad = Ad::create([
        'user_id' => $user_id,        
        'services' => $validated['dropdown_service'],        
        'titre' => $validated['title'],        
        'niveau_etude' => $validated['dropdown_etude'],        
        'langue' => $validated['langue'],        
        'experience' => $validated['experience'],        
        'localisation' => $validated['local'],        
        'description' => $validated['description'],        
        'contact' => $validated['contact'],        
    ]);

    if($ad){
        return redirect()->route('accueil')->with('success','Votre annonce a été postée.');
    } else {
        return redirect()->route('accueil')->with('error','Something went wrong.');
    }    
}

【讨论】:

  • 大佬,真的有大问题,因为我在做一个dd(Auth :: user())我结果null
【解决方案2】:

你必须像这样访问 auth user id $user_id = Auth::user()->id;

【讨论】:

  • 我没有访问权限
  • 公共功能登录(Request $request) { $phone=$request->phone; if (Auth::attempt(['phone' => $phone]) ) { //return redirect()->intended('/'); dd(Auth::user()); } else { return redirect()->back()->with( 'error', "Echec!" ); }
【解决方案3】:

而不是“$user_id = Auth::user()['id'];”使用这个:“$user_id = Auth::user()->id;” 它会起作用的。

【讨论】:

  • 它不起作用,"试图获取非对象的属性 'id'"
  • 对不起,这次我有点不舒服。即使我做了 dd (Auth :: user ()),我也设法注册了我的用户,它给我带来了很好的结果。但我还有另一个问题是要连接现有用户。我有一个字段,我希望他连接到他用于注册的电话号码。
  • 公共功能认证(请求 $request){ if($request->isMethod('post')) { $data = $request->all(); if (Auth::attempt(['phone' => $data['phone']])) { return redirect('/accueil'); } else { return redirect()->back()->with('error','Veuillez vous inscrire!'); } } }
猜你喜欢
  • 1970-01-01
  • 2020-03-29
  • 2018-03-04
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 2020-10-18
  • 1970-01-01
相关资源
最近更新 更多