как передать в контроллер параметр и реквест?

Всем привет.

есть роут

Route::post('/shop/{id}/message', 'ShopController@message_create')->name('message_create');

есть форма

<form action="{{ route('message_create', [$shop_one->id]) }}" method="POST">
    @csrf
    <div class="modal-body">
        <p>Пожалуйста, укажите причину</p>
        <div class="pop_sel">

            <div>Вопрос</div>
            <textarea rows="10" cols="45" name="text" >{{old('text')}}</textarea>

        </div>
    </div>
    <div class="style-button_save">
        <button class="button_save">Сохранить</button>
    </div>
</form>

есть контроллер

public function message_create($shop_id, ShopMessageRequest $request)
{
dd($shop_id);
        $shop_message = new ShopMessage();

        $shop_message->fill($request->only([
            'shop_id',
            'product_id',
            'user_id',
            'city_id',
            'name',
            'phone',
            'email',
            'lg_author',
            'look',
            'text',
            'created_at',
            'updated_at',
        ]));

        $shop_message->lg_author = 1;   //1-покупатель

        if (Auth::check()){     // если пользователь зарегистрирован
            $shop_message->shop_id = $shop_id;
            $shop_message->user_id = Auth::user()->id;
        }else{                  // если пользователь не зарегистрирован
            $shop_message->city_id = session('city_id');
        }

        $shop_message->save();

        return redirect()->back();
}

ShopMessageRequest - это валидация

я через форму передаю $shop_one->id, но не получаю его в контоллере $shop_id, т.е даже если в контроллере сделать dd(1) то ничего не произойдет. Т.е нет перехода в него.

Но если я убираю ShopMessageRequest $request - то все приходит. В чем проблемма? Что нужно сделать чтобы и валидацию подключить и передать shop_id


Ответы (0 шт):