1

我是 Laravel 的新手,我正在尝试使用查询生成器检索选定行的 id 值,但它不起作用。根据 Laravel 文档,我已经尝试了很多方法,但我仍然遇到问题。我认为这与变量的使用有关,但我不知道如何修复它。

   public function submit_idea(Request $request)
   {
      $key=$request->input('key');
      $workshop_id= DB::table('workshops')->where('autokey',$key)->value('id');
      $id = auth()->User()->id;
      $idea=new Idea;
      $idea->title=$request->input('title');
      $idea->description=$request->input('description');
      $idea->user_id=$id;
      $idea->workshop_id=$workshop_id;
      $idea->save();
      return view('submit_idea');
   }

我得到的错误是:SQLSTATE [23000]:完整性约束违规:1048列'workshop_id'不能为空(SQL:插入ideastitle,,,,)值(ppp description,iiuu,7,?))user_idworkshop_id

任何人都可以帮助我吗?

4

2 回答 2

0

改变:

$workshop_id = DB::table('workshops')->where('autokey',$key)->value('id');

至:

$workshop_id = DB::table('workshops')->select('id')->where('autokey',$key)->first();

顺便说一句,错误意味着workshop_id不能为空。如果它可以为空,请务必添加nullable()到迁移文件中的列。

于 2020-03-12T16:48:16.057 回答
0

您还可以使用

$workshopId = DB::table('workshops')->where('autokey', $key)->first()->pluck('name');

回声 $workshopId;

于 2020-03-20T13:35:57.830 回答