选择查询构建器,返回null

时间:2020-03-12 13:51:33

标签: eloquent laravel-6 laravel-query-builder selectquerybuilder

我是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:插入ideastitledescriptionuser_id,{{1} })值(ppp,iiuu,7,?))

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

更改:

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

收件人:

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

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

答案 1 :(得分:0)

您也可以使用

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

echo $ workshopId;