选择查询生成器返回 null

Posted

技术标签:

【中文标题】选择查询生成器返回 null【英文标题】:select query builder returning null 【发布时间】:2020-06-24 14:08:07 【问题描述】:

我是 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_idworkshop_id)值(ppp、iiuu、7、 ?))

有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

您也可以使用

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

echo $workshopId;

【讨论】:

【参考方案2】:

变化:

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

收件人:

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

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

【讨论】:

以上是关于选择查询生成器返回 null的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 查询生成器选择数组内的返回列

Laravel 使用按 id 搜索的查询生成器有线行为

空时Linq查询不返回null

SQL 命令生成器查询值

访问生成表查询

从通用表和专用表生成选择查询