Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Не заливайте фото на дропбокс) Ничего не отображается))
Видимо у меня отображаются, потому, что я авторизован не учел этот момент.
Выложил в папку https://www.dropbox.com/sh/xlb97oe6mpua … U6dDa?dl=0
Всем привет.
Использую компонент Laratrust для ролей в проекте.
В нем есть таблица:
// Create table for associating roles to users (Many-to-Many)
Schema::create('role_user', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->integer('role_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')
->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'role_id']);
});
При попытке сделать Seed, получаю ошибку:
Подскажите, куда копать?
Спасибо!
Всем привет.
Что-то я запутался. Может кто то на пальцах сказать когда стоит использовать InnoDB ?
Всем привет.
Поставил сей чудный пакет, за что автору огромное спасибо. Сильно упростило жизнь.
https://github.com/lazychaser/laravel-n … ing-a-tree
Подглядывал по статье https://habrahabr.ru/post/279233/
Но не смог победить функцию boot() (из статьи) с проверкой на изменение значений slug или parent_id для перестроения path у потомков.
Функция ругается на то, что '_lft' и '_rht' пустые при сохранении.
Может кто сталкивался? Моих скудных знаний не хватает победить беду
hzone пишет:переходи на nginx/php-fpm
У меня PHP 7 вроде через php-fpm и заведен. А nginx надо покурить как прикрутить
1. Auth после ифреврайта
2. логи апача смотри, но подозреваю, что проблема в отсутствии AllowOverride all - то есть где-то что-то запретило какую-то объявленную директиву.
3. переходи на nginx/php-fpm
Забыл написать.. Ошибка была в том, что я не верно путь до файла с паролем указывал глупая ошибка
А доля России в просмотре ларакаст и правда очень и очень мала:
Всем привет!
Присоединяюсь к благодарностям за перевод.
Если рассуждать, что без английского не надо вообще программировать, тогда зачем вообще все это тут? У меня крайне скудные знания английского, но я смотрю уроки Джефри, не понимая больше половины речи, но я нахожу ответы на вопросы, я вижу как сделать, но не всегда понимаю почему именно так он делает. Тут и помогают переводы.
У меня программирование - хобби, но при этом не хочется говнокодить. У нас очень не хватает именно уроков раскрывающих как нужно архитектурно делать, все примеры блогов или ToDo весьма поверхностные, выше писали про 25 минут, это реально так. Тут у человека блог занял 46 уроков, много интересного для себя подсмотрел, но опять не знание языка накладывает ограничение на понимание почему он делал так, а не иначе некоторые вещи.
Всем привет.
Хочу закрыть тестовый сервер паролем, сгенерировал .htpasswd, добавил в .htaccess:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /home/www/test.site.ru/public/.htpasswd
Require valid-user
Итоговый код получился:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /home/www/test.site.ru/public/.htpasswd
Require valid-user
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Сама авторизация срабатывает, но затем выдается ошибка:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at site_admin@gmail.com to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Как их подружить?
Возможно будет полезным. Джефри вчера как раз добавил видео о валидации в 5.3:
https://laracasts.com/series/whats-new- … pisodes/18
Отличный урок Мои задачи по валидации решились, все круто. Есть еще вопросы, для более сложной валидации, но это уже доки курить
Всем спасибо. Был не прав. Route::resource действительно отличное решение.
kamwork пишет:Ну зайду я в контроллер через 3и месяца, буду вспоминать Надо лесть в route:list
Наоборот, с простыней из get/post маршрутов такая история. С resource все понятно и совсем не нужно лезть в route:list.
Может есть где пример хороший посмотреть?
kamwork пишет:Как мне кажется, прозрачность и понятность должна быть в самом контроллере
То есть? Какая там может быть прозрачность, да и зачем? Команда route:list выведет все, что нужно. Роут, параметры, способ передачи, контроллер и метод. А что еще надо?
Ну зайду я в контроллер через 3и месяца, буду вспоминать Надо лесть в route:list
kamwork пишет:Да как то не прозрачно там все выглядит. В контроллере сходу не понятно, что POST, что GET
php artisan route:list
И? Как мне кажется, прозрачность и понятность должна быть в самом контроллере
Используй Route::resource()
Да как то не прозрачно там все выглядит. В контроллере сходу не понятно, что POST, что GET
Сейчас у меня роут выглядит так:
Route::get('admin/management', 'admin\AdminManagementController@index');
Route::get('admin/management/create', 'admin\AdminManagementController@getCreate');
Route::post('admin/management/create', 'admin\AdminManagementController@postCreate');
Route::get('admin/management/edit/{id}', 'admin\AdminManagementController@getEdit');
Route::post('admin/management/edit', 'admin\AdminManagementController@postEdit');
Ранее он же выглядел, так:
Route::controllers(['/admin/management' => 'AdminManagementController']);
Или я все же через #опу делаю?
Возможно будет полезным. Джефри вчера как раз добавил видео о валидации в 5.3:
https://laracasts.com/series/whats-new- … pisodes/18
Спасибо. Посмотрю
Здравствуйте.
Я совсем новичок в программировании и по сути взялся за непосильную мне задачу. Но выхода в данный момент у меня особо нет.
У меня вопрос по https://github.com/santigarcor/laratrust
Первоначально поправил роли и права доступа по умолчанию в laratrust_seeder, запустил php artisan db:seed. База заполнилась нужными значениями.
Дальше, с горем пополам я сделал возможность добавлять новые группы пользователей (роли) через веб-интерфейс.
На странице добавления выводятся поля для роли (имя, отображаемое имя и описание), а ниже список прав доступа из таблицы permissions с радиокнопками (Разрешено/Запрещено).
Все сохраняется, роли можно менять, удалять. В базе все отображается как должно.
Только не работает все равно. Работает только если поменять в laratrust_seeder и перезапустить db:seed.Я уже и базу сверил. Там точно такие же значения, что и после сохранения моей формы.
Получается бред какой-то. Права берутся вроде как из базы, но при этом все равно зависят жестко от laratrust_seeder? Или я тут что-то совсем не понимаю?
Что-то вы делаете ни так. Использую этот же пакет, все данные идут из базы.
Разобрался с валидацией и стандартным методом, просто шлем post запрос на /register
Но как победить предустановленную валидацию, мне в случаи регистрации через админку нужен одни редирект, через сайт другой.
Что значит, не знаете? Вы же сами пишете:
kamwork пишет:В модели User правил валидации нет, есть в контроллере RegisterController, но они protected, т.к. он вызывается из trait RegistersUsers.
Вы не в курсе, где находятся контроллеры? Но... это уж как-то слишком.
И зачем лезть в модель? "Все украдено до нас!" (С)
Лезу в модель, потому что так учили Можно конечно поглумиться надо мной, а можно и помочь
Если пролистнете контроллер вниз, есть там такое?
protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', ]); }
Эта функция вызывается в register()
$this->validator($request->all())->validate();
Да, но я не понял как добраться до контроллера. Я видимо не верно создаю пользователя, я делаю это через модель.
public function postCreate(Request $request)
{
$user = User::create($request->all());
$user->save();
$administrator = Role::where('name', '=', 'administrator')->firstOrFail();
$user->attachRole($administrator);
return redirect()->action('\App\Http\Controllers\admin\AdminManagementController@index');
}
А зачем изворачиваться? Что, собственно, не устраивает?
не хватает опыта сделать правильно, вот и прошу совет
В модели User правил валидации нет, есть в контроллере RegisterController, но они protected, т.к. он вызывается из trait RegistersUsers.
У меня два пути регистрации пользователей: из админки и с сайта.
Собственно вопрос, как сделать правильно? Вынести в модель User правила валидации и отталкиваться от них, или же как то извернуться и использовать то, что встроено в лару? Если второй вариант, то как?
kamwork пишет:Меня вот еще мучает вопрос, а как-то можно редиректить в зависимости от роли? Админов в админку, пользователей на сайт.
В 5.3 переопредели в контроллере Auth\LoginController.php, метод sendLoginResponse(). Скопируй оригинальный метод, но в конец измени на что-то вроде:
return redirect(auth()->user()->isAdmin() ? 'admin' : '/');
Спасибо! Сделал без переноса всего метода, все работает.
Добавил в LoginController.php, не перенося весь метод:
protected function sendLoginResponse()
{
return redirect(auth()->user()->hasRole(['superadministrator', 'administrator', 'partner']) ? '/admin' : '/');
}
Работает, но не уверен, что верно сделал, исходный класс выглядит так:
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
Стоит ли переносить ?
$request->session()->regenerate();
$this->clearLoginAttempts($request);
И не должен ли return выглядеть:
return $this->authenticated($request, $this->guard()->user()->hasRole(['superadministrator', 'administrator', 'partner']))
? '/admin' : '/');