Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте,
Пробуйте вместо двоеточия использовать
%3A
Здравствуйте!
А почему вы не хотите / не можете сразу обратиться к D и отфильтровать данные черезе whereHas?
Вы можете получить динамические данные через old и передать при загрузке страницы в JS, который соберет для вас все динамически. Второй вариант - соберите опять же через old при загрузке страницы все динамические поля, как вы и написали. Если предыдущие данные не возвращаются в случае ошибки валидации, значит вы где-то ошиблись в контроллере.
Если вы хотите иметь возможность фильтровать, сортировать, искать файлы еще что-то с ними делать, то вам стоит при заливке создавать строку в БД с названием, путем, и другими данными о файле. Если же вы хотите обойтись без БД, то советую углубиться вот в этот раздел, но я бы не советовал это делать без БД.
Функция withErrors кладет ошибки в сессию, в то время как ValidationException, который срабатывает и в первом и во втором варианте, перенаправляет нас на предыдущую страницу и возвращает объект с ошибками и “old data” (если я ничего не путаю). Забыл еще про третий вариант:
$validator = Validator::make($request->all(), [
‘phone’ => ‘required|string|max:255’,
]);
if ($validator->fails()) {
return redirect()->route(‘phonelogin’)->withErrors($validator)->withInput();
}
// CODE
if(!$user){
return redirect()->route(‘phonelogin’)->withErrors(“В базе нет такого телефона!“, “errors”)->withInput();
}
Можете попробовать так:
$request->validate([
'phone' => 'required|string|max:255|exists:users,phone',
]);
Либо кидать Exception:
if(!$user){
throw ValidationException::withMessage([
'phone' => ["В базе нет такого телефона!"],
]);
}
Сохратите язык в session и затем через middleware применяйте выбраный язык.
Судя по ошибке вы прописали где-то в .env вместо не redis, а predis..
Но только по ошибке довольно тяжело строить предположения.
Здравствуйте,
Если не хотите делать SPA, но хотите использовать Vue для авторизации, то у вас три самых простых варианта:
1) Авторизация через стандартный пакет https://laravel.com/docs/7.x/sanctum
2) Воспользоваться готовым решением, которое упрощает взаимодействие Vue с Laravel в разы https://inertiajs.com
3) Токен авторизации через стандартный пакет https://laravel.com/docs/7.x/passport
Если у вас Vue крутится отдельно от Laravel, то советую 1 вариант.
Если используете Vue вместо blade, то присмотритесь ко второму варианту.
Третий вариант интересен лишь в том случае, если планируете подключение других приложений, на базе Android/iOS и т.д. к вашей системе
Whoops, looks like something went wrong.
- Это общая ошибка. Что конкретно у вас написано в логах?
Вы бы хоть 500 ошибку саму скинули?
Csrf токен используется для предотвращения атак на ваш сайт. Добавлять рут на добавление комментариев в исключение - ужасная затея. Вкратце, вы должны при каждом пост запросе отправлять уникальный токен.
https://laravel.com/docs/5.8/csrf
Здравствуйте,
Вы уверены, что csrf токен передаётся в форме авторизации?
Нужно проверять поле на min: и max: или between
Как вариант, в config/database.php создаете еще одну конфигурацию, после чего сможете в контроллерах обращаться к нужной БД:
$users = DB::connection('foo')->select(...);
Второй вариант, работать с ролями пользователей на стороне ларавел при помощи Gates.
В общем решил проблему при помощи Gates и Middleware.
В RedirectIfAuthentificated прописал нужные мне Gates и вызвал через руты этот middleware.
В итоге /dash получился прослойкой, которая редиректит уже на нужную страницу.
А от нас то чего хотите? Вопроса то нет..
А через какую среду прописывать команды artisan? Пробовал через консоль - не работает.
А в документации так написано будто не полностью, а обрывками. :\
Через консоль идете в папку проекта (cd Папка/папка/проект)
Затем пишете php artisan (что-то)
Вообще нужно начать с изучения документации
Для начала, создайте базу данных через phpMyAdmin или через что вам удобнее, затем пропешите юзера, название и пароль от базы в .env файл. После чего начните изучать migrations в документации.
А что так мало тем создал? Давай ещё парочку создай и тогда точно на сверх звуковой скорости прилетят помогут.
Прошу прощения за это, когда создавал, получал ошибку и соответственно не видел, что тема все таки создалась, а удалить прав не хватает
Здравствуйте,
Вот начал разбираться с 5.3 и практически сразу же столкнулся с проблемой.
Необходимо сделать аутентификацию пользователей основанную на ролях пользователей.
Создал Gate в AuthServiceProvider, там проверяю роль пользователя. В middleware RedirectIfAtuhentificated прописал Gate::allows('role', 'admin') ну и соответственно куда редиректить при той или иной роли, например, админов в /dash/admin, юзеров в /dash/users и т.д. Теперь, когда вользователь уже залогинен все редиректит правильно, а вот с самим логином как раз и возникла проблема.
Не понимаю каким образом эти Gates прописать в LoginController, там есть только:
protected $redirectTo = '/home';
public function __construct() {
$this->middleware('guest', ['except' => 'logout']);
}
Здравсвуйте,
Хочу сделать пути таким образом, чтобы в зависимости от роли пользователя путь обрабатывали разные контроллеры.
Например:
Админ перейдя по пути /categories попадет на страницу, которую обрабатывает контроллер AdminCategoriesController, в то же время, если Пользователь перейдет по пути /categories, он попадет на страницу, которую обрабатывает контроллер UserCategoriesController.
Я понимаю, что это нужно делать при помощи фильтров, но не получается сделать один путь.
Как вариант можно проходить кроном по объявлениям и менять статус тем, что старше 7 дней
Через терминал зайти в папку с проектом и выполнить команду composer install