Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте!
Столкнулся с неприятной проблемой используя laravel mix
в версии Laravel 5.x я писал что то типа:
mix.js('resources/js/admin/app.js', 'public/js/admin.js')
.js('resources/js/front/app.js', 'public/js/app.js')
.sass('resources/sass/app.scss', 'public/css')
Все отлично работало собирается два js файла, для админки и фронта и css файл из scss
В 6-й же версии подобная конструкция приводит к тому что файл со стилями полностью пустой!
Может кто подскажет что я делаю не так?(
Я тоже новичек в Laravel, но при валидации никаких middleware не использовал, у меня так валидаторы:
$validator = Validator::make(
$form,
[
'full_name' => 'required|min:8',
'phone' => 'required|min:8',
],
[
'fullName.required' => 'Поле "Фамилия, имя, отчество" обязательно для заполнения',
'fullName.min' => 'Минимальная длинна поля "Фамилия, имя, отчество" 8 символов',
]
);
if ( $validator->fails() ) {
return back()->withErrors( $validator->errors() );
}
Может у вас ошибка потому что вы пытаетесь использовать $validator->errors вместо $validator->errors()! Вам же ведь так и пишет:
Undefined property: Illuminate\Validation\Validator::$errors
Отсутствует поле $errors!
Вроде со всем разобрался ) VitalN благодарю вас за помощь!
upd. понял, забыл return redirect()->route( 'admin.patients.index' )->with( 'status', 'complete' )->send();
Правильно, абсолютно корректно
Теперь осталось понять как сделать редирект ( Ибо в конструкторе вызов:
return redirect()->action( 'Admin\Patient\PatientsController@index' )->with( 'status', 'complete' );
или
return redirect()->route( 'admin.patients.index' )->with( 'status', 'complete' );
меня никуда не редиректит увы ( просто белый экран
В роутинге только такое:
Route::group( [ 'prefix' => 'admin', 'namespace' => '\Admin\Patient' ], function () {
Route::resource( 'patients', 'PatientsController');
} );
Про то что подменять action у формы я уже думал, но мне не нравится такой подход тем что мне придется для каждого события писать отдельный роутер! Так как систему которую надо написать будет расширяемой, то я боюсь представить сколько будет какая будет потом в файле роутере простыня этих определений, в которых можно будет забудиться..
А хочется один вызов..
пока пытался по action который у формы передать method и в конструкторе контроллера вызвать нужный метод, метод вызывается но потом чистая страница, я так подозреваю что после всего этого мне надо будет сделать редирект, но насколько корректный будет такой подход?
Ну с этого начинать надо было )
Заводишь такой же хидден, и отсылаешь все в сводный метод, где в зависимости от операции дергаешь другой метод. Либо по клику меняшь action форме и самбитишь на нужный роут.
Я же вроде так и написал ))) Может просто сумбурно!
Проблема в том что я не понимаю что в роутере писать, какой action для формы, и как из роутера вызвать нужный метод контроллера!
(или не извращаться и прямо в контроллере в методе index определить какой метод пришел и его дергать?)
Alex_D пишет:Беда в том что чекбокс должен быть один для каждой записи!
Чекбокс априори не может быть один на три действия, может с радио-группой путаешь?
Нет я ничего не путаю приведу пример из админки Joomla CMS
Как видите тут для каждой записи один чекбокс (2)
И группа кнопок (1)!
Кнопки вообще висят вне формы! При нажатии на кнопку в форме в поле @input type="hidden" name="taks" value=""@ подставляется задача, которая завязана на эту кнопку, потом контроллер вызывает нужный метод! В методе обрабатывается cid[] чекбоксы которые отправляют... потом в цикле проход этих записей и удаление в модели!
Чекбоксы
<input type="checkbox" name="fav[{{row.id}}]" />
<input type="checkbox" name="delete[{{row.id}}]" />
<input type="checkbox" name="publish[{{row.id}}]" />
отслыаешь все на метод saveList внутри три массива разбираешь
Беда в том что чекбокс должен быть один для каждой записи! Три чекбокса это костыль ещё больше
Тоесть например
<input type="checkbox" name="cid[{{row.id}}]" /> а не три!
Тем более ладно бы было только три кнопки, а кнопок то может быть и 6-ть
"В корзину", "Удалить", "Опубликовать", "Снять с публикации", "В избранное", "Из избранного" не делать же мне 6-ть чекбоксов!
Всех приветствую!
Только начал изучать laravel и сразу начал биться головой об стол )
Особенно с роутингом, вроде все просто.. но в тоже время то что нужно нигде не описано, два дня гугления ничего не дали (возможно не правильно составляю вопрос)..
Вообщем может кто сталкивался с подобным и знает как реализовать!
Итак у меня есть табличка с записями списка материалов, материал можно снимать с публикации, удалять, делать избранным!
Проблем с этим никаких, но только в том случае когда это действие ставить для каждого поля в конце кнопкой
то есть три кнопки напротив каждой записи, удалить, опубликовать, сделать избранным!
Все прекрасно работает, но теперь нужно сделать действия для группы записей, то есть напротив каждой записи чекбокс, мы выделяем нужные записи, нажимаем одну из кнопок "Удалить", "Опубликовать", "В избранное", и все выделенные записи летят в нужный метод!
И вот тут ступор! В форме у меня скрытое поле допустим input type="hidden" mame="method" value="" при нажатии на эту кнопку подставляется в это поле нужные метод например deleteList или publishList или favList и сабмитится форма!
А вот как все это отловить в роутере, какой action давать форме, и как вызвать нужный метод контроллера из роутера понять увы не могу (