выберите построитель запросов, возвращающий ноль - PullRequest
1 голос
/ 12 марта 2020

Я новичок в Laravel, и я пытаюсь получить значение идентификатора выбранной строки, используя построитель запросов, но это не работает. Я пробовал это разными способами в соответствии с документацией 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, workshop_id) значения (ppp, iiuu, 7,?))

Может кто-нибудь, помогите мне, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Вы также можете работать с

$ workshopId = DB :: table ('works') -> где ('autokey', $ key) -> first () -> pluck (' name ');

echo $ workshopId;

0 голосов
/ 12 марта 2020

Изменение:

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

На:

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

Кстати, ошибки означают, что workshop_id не может быть нулевым. Если он может быть нулевым, обязательно добавьте nullable() к столбцу в вашем файле миграции.

...