Size: a a a

2020 July 10

ЕП

Евгений Перин ⭐️... in Laravel Pro
Можно
источник

v

vladamir in Laravel Pro
у меня The id field is required возвращается все равно, хоть id передаю в роуте /poll/{id} - правило простое:
public function rules()
{
   return [
       'id' => 'required',
   ];
}


а что может быть не так, может есть предположения?
источник

v

vladamir in Laravel Pro
контроллер тож простой
public function show(PollRequest $request)
{
   dump($request->validated());
}
источник

ИФ

Иван Филатов... in Laravel Pro
у вас это параметр роута, а не параметр запроса получается. на валидацию в случае гет-запроса идут те параметры, что после ?, типа ?id=1
источник

ИФ

Иван Филатов... in Laravel Pro
а этот id попадет у вас в параметр метода контроллера $id (вроде, но это не точно)
источник

v

vladamir in Laravel Pro
Иван Филатов
у вас это параметр роута, а не параметр запроса получается. на валидацию в случае гет-запроса идут те параметры, что после ?, типа ?id=1
ай блин, а параметры роута нельзя валидировать с помощью реквестов?
источник

ИФ

Иван Филатов... in Laravel Pro
vladamir
ай блин, а параметры роута нельзя валидировать с помощью реквестов?
вы можете в роутах написать что-то типа $router->get(...)->where(...) синтаксис не помню, читайте доку
источник

ИФ

Иван Филатов... in Laravel Pro
т.е. вы в файле роута пишете правило, под какой вид {id} будет откликаться маршрутизатор
источник

v

vladamir in Laravel Pro
Иван Филатов
вы можете в роутах написать что-то типа $router->get(...)->where(...) синтаксис не помню, читайте доку
Во еще как можно указать в реквестФайле)
public function validationData()
{
   return [
       'id' => Route::input('id'),
   ];
}
источник

ИФ

Иван Филатов... in Laravel Pro
vladamir
Во еще как можно указать в реквестФайле)
public function validationData()
{
   return [
       'id' => Route::input('id'),
   ];
}
это называется костыль)
источник

v

vladamir in Laravel Pro
Иван Филатов
это называется костыль)
а регексп в файле роута не будет костылем?
источник

v

vladamir in Laravel Pro
типа вот такой
->where('id',  '[0-9]+')
источник

v

vladamir in Laravel Pro
приятно же, когда вся валидация в одном месте
источник

ИФ

Иван Филатов... in Laravel Pro
ну вы конечно можете делать как хотите, просто обычно не принято мешать параметры пути с параметрами запроса
источник

v

vladamir in Laravel Pro
Иван Филатов
ну вы конечно можете делать как хотите, просто обычно не принято мешать параметры пути с параметрами запроса
а как лучше, не подскажите? В роутах делать where и в контроллере проверять существование и тд? Просто строчка
'id' => 'required|integer|exists,table


кажется привлекательнее на первый взгляд, но да, это мешает параметры
источник

ИФ

Иван Филатов... in Laravel Pro
почитайте про model binding, я думаю это снимет ваши вопросы
источник

v

vladamir in Laravel Pro
Иван Филатов
почитайте про model binding, я думаю это снимет ваши вопросы
ну вы имеет ввиду указать вот так в экшене
public function show(Poll $poll)
источник

ИФ

Иван Филатов... in Laravel Pro
да
источник

v

vladamir in Laravel Pro
но так пройдет в БД запрос если id например строка((
источник

AS

Alek Sanders in Laravel Pro
vladamir
но так пройдет в БД запрос если id например строка((
RouteServiceProvider
источник