我是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:插入ideas
(title
,description
,user_id
,{{1} })值(ppp,iiuu,7,?))
有人可以帮助我吗?
答案 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;