SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец restaurant_id не может быть пустым - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь сохранить идентификатор маршрута отзыва (он содержит идентификатор ресторана) в переменной с именем restaurant_id в таблице отзывов. Это функция магазина:

public function store(Request $request) {
    if (! Auth::check()) {
        return redirect('/index');
    }

    $review = new Review;
    $review->user_id = auth()->user()->id;
    $review->restaurant_id = $request->route('id');
    $review->value = $request->input('value');
    $review->save();
}

Это ссылка на профиль ресторана, которая указывает на шаблон отзыва Add review. Это действие на форме:

{!!Form::open(['action' => ['ReviewsController@store'], 'method'=>'POST', 'enctype'=>'multipart/form-data'])!!}

Это шаблон отзыва:

<html>
    {!!Form::open(['action' => ['ReviewsController@store',], 'method'=>'POST', 'enctype'=>'multipart/form-data'])!!}
        <div class="form-group"> 
            {{Form::textarea('value', null, ['id'=>'value', 'placeholder'=>'Insert here', 'name'=>'value'])}}
        </div>

        {{Form::submit('submit', ['class'=>'btn btn-primary', 'type'=>'submit', 'id'=>'submit'])}}

    {!!Form::close()!!}
</html>

При отправке я получаю сообщение об ошибке:

SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец 'restaurant_id' не может быть нулевым (SQL: вставить в значения отзывов (user_id, restaurant_id, updated_at, selected_at) (1,?, Kkkkbkb) , 2019-07-11 08:39:10, 2019-07-11 08:39:10))

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

В вашей форме добавьте параметр маршрута следующим образом:

{!!Form::open(['action' => ['ReviewsController@store',],'method'=>'POST',
            'enctype'=>'multipart/form-data'])!!}
   <input name="restaurant_id" type="hidden" value="{{ Request::route('id') }}">
   ...
{!!Form::close()!!}

Примечание {{ Request::route('id') }} id - это имя, которое вы указали в параметрах вашего маршрута.

А в вашем контроллере:

    $review=new Review;
    $review->user_id=auth()->user()->id;
    $review->restaurant_id=$request->get('restaurant_id'); 
    $review->value=$request->get('value');
    $review->save();
0 голосов
/ 11 июля 2019

где вы берете это значение? $request->route('id');. restaurant_id не видит этого $request->route('id');

...