At step from 10:14, this route is also functional: (Laravel 10) Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () { Route::group(['namespace' => 'Users'], function () { Route::get('/users', 'IndexController')->name('admin.users.index'); }); });
use App\Http\Controllers\Admin\Post\IndexController as IndexAdmin; Route::group(['namespace'=>'App\Http\Controllers\Admin', 'prefix'=>'admin'], function (){ Route::group(['namespace'=>'Post'], function (){ Route::get('/post', IndexAdmin::class)->name('admin.post.index'); }); }); Иначе война имен классов (даже если они в разных пространствах имён, но сходятся в одном файле маршрутов), потому что у нас с прошлых занятий остался IndexController. Маршрутизатор не знает, к какому обращаться. Хотя..... ты имя класса пишешь в кавычках, может поэтому прокатывает.
После выделения всех src c помощью alt+j и прописи {{asset('')}} продолжаем двигать множественным курсором вправо и остановившись на первом символе путей к чему либо жмем ctrl+w два раза, выделилось всё, вырезали, переместились в асет и вставили. Чтобы не тыркать по одиночке эти пути в асет.
если вы на маке - ctrl+g(для следующего похожего выделения) или ctrl+cmd+g для выделения всех похожих вхождений в документе. Вместо ctrl+w жмем option+стрелка вверх(не шифт)
Я установил AdminLTE через композер. Команда для установки на их сайте в разделе Docs / Installation: composer require "almasaeed2010/adminlte=~2.4" После установки не нужно проставлять нигде {{ assets() }}, все прекрасно работает)
Хм... Я тоже установил через composer require "almasaeed2010/adminlte=~3.2" но если зайти в папку vendor/almasaeed2010/adminlte/starter.html там все без {{ assets() }}. Можете подробнее обьяснить что вы делали после установки что все сразу завелось?
Немного дополню: Route::prefix('admin')->namespace('App\Http\Controllers\Admin\post')->name('admin.')->group(function() { Route::get('/post', 'IndexController')->name('post.index'); }); Тут сразу в группу забито имя, адрес контроллера и префикс ссылки)
Еще вариант, поближе к оригиналу, но работает на 9-ке: Route::prefix('admin')->namespace('Admin')->group(function (){ Route::namespace('Post')->group( function (){ Route::get('/post', 'IndexController')->name('admin.post.index'); }); });
Вроде и полезная информация, но структура подаваемой информации - жесть. Каша какая то )) Автор рекомендует сначала просмотреть, потом сделать возможно подсматривая, потом - все самостоятельно. Как же тут разобрать - что нужно сделать? Было бы хорошо в рамках видео - обозначивать типа техзадания - что должно получиться - в каком виде и с каким функционалом. С труктуре вьюшек запутаться можно, если не знаешь, чего от тебя хотят...
Спасибо, за урок. Есть такая проблема что не могу из папки public достать картинки или другие файлы.Возвращает 404 страницу. Окружение laravel сделал по твоим урокам dockera
а правильно ли, что я в main.blade.php поменял ссылку с {{ route('main.index') }} на {{ route('admin.post.index') }} и все create, store, show, edit, delete заработали? или как нужно было сделать, чтобы окно для добавления, редактирования и т.д. открывалось именно в админке? имею ввиду, чтобы открывалось именно в секции Main в верстке, где окошко Dashboard?
Из урока в урок красной нитью "жэй значит Женя")) Вообще не понимаю, причём к "J" какой-то Женя?? Ровно ничего общего как по мне. Только сбивает с толку. Джон - надо говорить. А ещё лучше - join, чтобы в голове на место садилось. Но в целом уроки хорошие. Немного легче воспринимаются чем аналогичные на ютубе.
Я правильно понял, в 9 версии namespase не поддерживается? Приходится контроллеры импортировать через псевдонимы либо прописывать полный путь к контроллеру в роутинге
все прекрасно, только уж больно режет глаз то как обновляется "сайдбар" при переходе по номерам пагинации.... что бы это предотвратить нужен ajax- запрос?
Вместо {{asset()}} можно прописать относительные пути ./ href="{{asset('plugins/fontawesome-free/css/all.min.css')}}" href="'./plugins/fontawesome-free/css/all.min.css'"
из видео вообще не понятно про возможности этой админки, в конце видео такое чувство что админку ставил только ради сайдбара слева Я правильно понял - эта админка это только для фронтэнда?
Разминка мозгов: как поставить какую-нибудь систему фронтэнда, которую тебе написали под проект, как её подключить и прокинуть стили и скрипты. Наверное так))
что-то непонятно, зачем вообще эта штука? были сообщения, открывающиеся в окне браузера. Перенес их в этот adminlte. И что дальше? Зачем и о чем вообще это видео?
Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () { Route::group(['namespace' => 'Post'], function () { Route::get('/posts', 'IndexController')->name('admin.post.index'); }); }); Не забывай, что http путь будет с префиксом.
Спасибо за урок!!! Интересный подход, я раньше устанавливала adminLTE через composer, попробую ваш способ! И у меня есть вопрос: в sidebar.php, не видит {{ $posts->count() }}, думает что это просто текст. В views\admin\post\index.blade.php выводит, ну мы в это представление и передаём ). Могла, что-то пропустить)
Через компосер тоже можно, просто много лишних библиотек цепляет) Но и так и так полезно уметь!) Да, возможно что-то было упущено) Может скобочки не те или еще что)
@Андрей Минск Можно чуть подробнее, а то я передаю доп переменную $total (т.е. в create делаю запрос $total = Post::count(); и его отдаю в переменную $total и дальше использую именно ее в шаблоне), а это имхо ппц не правильно...
@Андрей Минск спасибо, уже тоже нашёл инфу про view::share, единственное пока не пробовал, но в теории вижу один минус, использоваться будет вообще во всех шаблонах, даже не в админке, а это каждый раз лишний запрос и обработка, я понимаю что не страшно, но хотелось бы ограничить share только нужными контроллерами. Завтра на свежую голову попробую
Добрый день, спасибо / очень подробно скажи книга "Laravel. Полное руководство. 2-е издание" Мэтта Стаффера 2020 года - сильно от текущей документации на Laravel8 отличается? / он описывает 5.8
ОООчень много отличий! Но благодаря этим урокам, можно быстро разобраться в отличиях, новых нотациях и функциях. Раньше многое приходилось делать руками)
Уже который раз попадаю в ситуацию, что всё правильно написал, но не работает страница. Спасает команда php artisan route:cache. Можете объяснить как это работает и почему вас всё сразу работает?))))
Странно. Попробуй перейти в config/cache.php и там настройку эту глянуть 'stores' => [ //... 'none' => [ 'driver' => 'null', ], ], В общем должно быть, как тут указано)
Такой вариант если у кого-то ошибка : 404 NOT FOUND Или ошибка с путем. Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () { Route::group(['namespace' => 'Contact'], function () { Route::get('/contact', 'IndexController')->name('admin.contact.index'); }); });
Добавил каталог товаров в админку, в итоге когда заходишь в посты теряется переменная $products (из файла sidebar.blade.php где выводится количество постов или товаров) при переходе в каталог товаров соответственно теряется переменная $posts. Получаем ошибку Undefined variable $posts или $products. Как решить данную проблему, подскажите пожалуйста.
Никак не могу решить проблему: как только добавляю FilterRequest $request в __invoke (в файле Admin/Post/IndexController.php) то при обращении к 127.0.0.1:8000/admin/post выбивает на главную страницу. Как убираю, сразу dd(1111111); срабатывает. По видео код один к одному переписываю.
class AppServiceProvider public function boot() { Paginator::defaultView('vendor.pagination.default'); View::composer('admin.includes.sidebar', function ($view) { $view->with('projectsCount', Project::all()->count()); }); }
Спасибо за урок, чтобы не менять в шаблоне все пути, просто в head можно прописать, например под вот такой код:
спасибо!
лучший
Спасибо, помогло
ты меня спас! Благодарю чемпион!
хахаха, обращайся, чемпион, тебе всегда помогут@@DimAlbisoara
At step from 10:14, this route is also functional: (Laravel 10)
Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () {
Route::group(['namespace' => 'Users'], function () {
Route::get('/users', 'IndexController')->name('admin.users.index');
});
});
Благодарю!:)
Спасибо тебе добрый князь!
Огромное спасибо
use App\Http\Controllers\Admin\Post\IndexController as IndexAdmin;
Route::group(['namespace'=>'App\Http\Controllers\Admin', 'prefix'=>'admin'], function (){
Route::group(['namespace'=>'Post'], function (){
Route::get('/post', IndexAdmin::class)->name('admin.post.index');
});
});
Иначе война имен классов (даже если они в разных пространствах имён, но сходятся в одном файле маршрутов), потому что у нас с прошлых занятий остался IndexController. Маршрутизатор не знает, к какому обращаться.
Хотя..... ты имя класса пишешь в кавычках, может поэтому прокатывает.
После выделения всех src c помощью alt+j и прописи {{asset('')}} продолжаем двигать множественным курсором вправо и остановившись на первом символе путей к чему либо жмем ctrl+w два раза, выделилось всё, вырезали, переместились в асет и вставили. Чтобы не тыркать по одиночке эти пути в асет.
если вы на маке - ctrl+g(для следующего похожего выделения) или ctrl+cmd+g для выделения всех похожих вхождений в документе. Вместо ctrl+w жмем option+стрелка вверх(не шифт)
Зачёт! Надо привыкать к горячим клавишам и ускорять редактирование кода. Респект.
Спасибо, за урок! Очень крутая и простая подача материала!
Благодарю)!
Шеф, дякую за урок, я вирішив сам зробити адмінку із своїм дизайном.
тебя здесь все поняли
@@xznktogoogle translate
Я установил AdminLTE через композер. Команда для установки на их сайте в разделе Docs / Installation:
composer require "almasaeed2010/adminlte=~2.4"
После установки не нужно проставлять нигде {{ assets() }}, все прекрасно работает)
Отличный вариант)
И правда) Респект, Михаил!
Хм... Я тоже установил через composer require "almasaeed2010/adminlte=~3.2" но если зайти в папку vendor/almasaeed2010/adminlte/starter.html там все без {{ assets() }}. Можете подробнее обьяснить что вы делали после установки что все сразу завелось?
Для Laravel 9 route нужно написать так:
Route::prefix('admin')->group(function (){
Route::get('post',[IndexController::class,'__invoke'])->name('admin.post.index');
});
Немного дополню:
Route::prefix('admin')->namespace('App\Http\Controllers\Admin\post')->name('admin.')->group(function() {
Route::get('/post', 'IndexController')->name('post.index');
});
Тут сразу в группу забито имя, адрес контроллера и префикс ссылки)
Еще вариант, поближе к оригиналу, но работает на 9-ке:
Route::prefix('admin')->namespace('Admin')->group(function (){
Route::namespace('Post')->group( function (){
Route::get('/post', 'IndexController')->name('admin.post.index');
});
});
@@РасулМансуров-в9н а почему с 9 версии нужно прописівать в неймспейсах полній путь? Ві разобрались? Я - нет 🤷♂
@@РасулМансуров-в9н Спасибо! На 10 ларавел работает отлично)
Вроде и полезная информация, но структура подаваемой информации - жесть. Каша какая то )) Автор рекомендует сначала просмотреть, потом сделать возможно подсматривая, потом - все самостоятельно. Как же тут разобрать - что нужно сделать? Было бы хорошо в рамках видео - обозначивать типа техзадания - что должно получиться - в каком виде и с каким функционалом. С труктуре вьюшек запутаться можно, если не знаешь, чего от тебя хотят...
Всё ок, только вместо иконки пустой прямоугольник, но это мелочь. Спасибо за урок
Thank's for your lessons.
Благодарю!)
Laravel 10
Route::group(['namespace' => '\App\Http\Controllers\Admin\Post'], function () {
Route::prefix('/office')->group(function () {
Route::get('/posts', IndexAdminController::class)->name('office.post.index');
});
});
я ложу dist и plugins в паблике в каталог admin, чтоб не валялось у корне непонятно что:) ну и поправить пути в шаблоне
Отличный урок по Laravel
Благодарю)!
Получилось всё, и домашка тоже, кроме иконки, иконка ни в какую не всталялась
Спасибо, за урок. Есть такая проблема что не могу из папки public достать картинки или другие файлы.Возвращает 404 страницу. Окружение laravel сделал по твоим урокам dockera
нужно было поправить немного конфиг nginx try_files $uri/ /index.php?$args; на try_files $uri $uri/ /index.php?$args;
а правильно ли, что я в main.blade.php поменял ссылку с {{ route('main.index') }} на {{ route('admin.post.index') }} и все create, store, show, edit, delete заработали? или как нужно было сделать, чтобы окно для добавления, редактирования и т.д. открывалось именно в админке? имею ввиду, чтобы открывалось именно в секции Main в верстке, где окошко Dashboard?
почему то не подгружается иконка. Подгружаются только те, что есть базовом шаблоне
AdminLTE отстал от жизни. Мне понравились Material Dashboard 2 Pro и Star Admin 2 Pro.
Из урока в урок красной нитью "жэй значит Женя")) Вообще не понимаю, причём к "J" какой-то Женя?? Ровно ничего общего как по мне. Только сбивает с толку. Джон - надо говорить. А ещё лучше - join, чтобы в голове на место садилось. Но в целом уроки хорошие. Немного легче воспринимаются чем аналогичные на ютубе.
Я правильно понял, в 9 версии namespase не поддерживается? Приходится контроллеры импортировать через псевдонимы либо прописывать полный путь к контроллеру в роутинге
Route::prefix('admin')->namespace('Admin')->group(function (){
Route::namespace('Post')->group( function (){
Route::get('/post', 'IndexController')->name('admin.post.index');
});
});
на 10:14 ошибка "Invalid route action: [Admin\Post\IndexContriller]." (Ларавел 9). Исправил на:
Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () {
Route::group(['namespace' => 'post'], function () {
Route::get('/post', 'IndexController')->name('admin.post.index');
});
});
Благодарю!:)
все прекрасно, только уж больно режет глаз то как обновляется "сайдбар" при переходе по номерам пагинации.... что бы это предотвратить нужен ajax- запрос?
Не совсем понятно, что не так?)
@@laravelcreative страничка "дергается"
Аа интересно, у меня вроде нормально отрабатывает( Эх фронтенд(
@@laravelcreative понял, принял. спасибо вам за обратную связь! P.s. уроки зачет!!
Вместо {{asset()}} можно прописать относительные пути ./ href="{{asset('plugins/fontawesome-free/css/all.min.css')}}" href="'./plugins/fontawesome-free/css/all.min.css'"
Кстати, при выборе (Alt+J ) Можно копировать и вставлять
Спасибо Вам
Благодарю:)
из видео вообще не понятно про возможности этой админки, в конце видео такое чувство что админку ставил только ради сайдбара слева
Я правильно понял - эта админка это только для фронтэнда?
Разминка мозгов: как поставить какую-нибудь систему фронтэнда, которую тебе написали под проект, как её подключить и прокинуть стили и скрипты. Наверное так))
что-то непонятно, зачем вообще эта штука? были сообщения, открывающиеся в окне браузера. Перенес их в этот adminlte. И что дальше? Зачем и о чем вообще это видео?
Lara 11. If u add dirs dist & plugins in public, that u need to use this code in your blade file.
у меня фильтры не работают стоит их прописать тут же слишком много переадресаций или возврат на предыдушую страницу
Ни один из вариантов рутов на 10 минуте не работает( В комментариях все перепробовал, ошибка 404, Ларавел 11
Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () {
Route::group(['namespace' => 'Post'], function () {
Route::get('/posts', 'IndexController')->name('admin.post.index');
});
}); Не забывай, что http путь будет с префиксом.
Спасибо за урок!!! Интересный подход, я раньше устанавливала adminLTE через composer, попробую ваш способ! И у меня есть вопрос: в sidebar.php, не видит {{ $posts->count() }}, думает что это просто текст. В views\admin\post\index.blade.php выводит, ну мы в это представление и передаём ). Могла, что-то пропустить)
Через компосер тоже можно, просто много лишних библиотек цепляет) Но и так и так полезно уметь!) Да, возможно что-то было упущено) Может скобочки не те или еще что)
@Андрей Минск нашли решение?
@Андрей Минск Можно чуть подробнее, а то я передаю доп переменную $total (т.е. в create делаю запрос $total = Post::count(); и его отдаю в переменную $total и дальше использую именно ее в шаблоне), а это имхо ппц не правильно...
@@Gleb8888 может уже нашли и поделитесь?)
@Андрей Минск спасибо, уже тоже нашёл инфу про view::share, единственное пока не пробовал, но в теории вижу один минус, использоваться будет вообще во всех шаблонах, даже не в админке, а это каждый раз лишний запрос и обработка, я понимаю что не страшно, но хотелось бы ограничить share только нужными контроллерами. Завтра на свежую голову попробую
камент для продвижения
Благодарю!)
Добрый день, спасибо / очень подробно
скажи книга "Laravel. Полное руководство. 2-е издание" Мэтта Стаффера 2020 года - сильно от текущей документации на Laravel8 отличается? / он описывает 5.8
Если описывает 5.8, то отличий много) Наверно общие какие-то моменты можно взять, а так к сожалению в 8 версии уже многое неактуально)
ОООчень много отличий! Но благодаря этим урокам, можно быстро разобраться в отличиях, новых нотациях и функциях. Раньше многое приходилось делать руками)
Уже который раз попадаю в ситуацию, что всё правильно написал, но не работает страница. Спасает команда php artisan route:cache. Можете объяснить как это работает и почему вас всё сразу работает?))))
Странно. Попробуй перейти в config/cache.php и там настройку эту глянуть
'stores' => [
//...
'none' => [
'driver' => 'null',
],
],
В общем должно быть, как тут указано)
Капец установка.... Это не установка, это просто перенести стили и верстку. Верните мое потерянное время.
покажи или хотя бы напиши, как это сделать проще и быстрее другим способом
15
Такой вариант если у кого-то ошибка :
404 NOT FOUND
Или ошибка с путем.
Route::group(['namespace' => 'App\Http\Controllers\Admin', 'prefix' => 'admin'], function () {
Route::group(['namespace' => 'Contact'], function () {
Route::get('/contact', 'IndexController')->name('admin.contact.index');
});
});
Добавил каталог товаров в админку, в итоге когда заходишь в посты теряется переменная $products (из файла sidebar.blade.php где выводится количество постов или товаров) при переходе в каталог товаров соответственно теряется переменная $posts. Получаем ошибку Undefined variable $posts или $products. Как решить данную проблему, подскажите пожалуйста.
Никак не могу решить проблему: как только добавляю FilterRequest $request в __invoke (в файле Admin/Post/IndexController.php) то при обращении к 127.0.0.1:8000/admin/post выбивает на главную страницу. Как убираю, сразу dd(1111111); срабатывает. По видео код один к одному переписываю.
Оказалось из за 'title' => 'required|string' в FilterRequest, меняю на 'title' => 'string' и всё работает!
Короче я сам себе злобный буратино, надо не required писать, а require 😁
Не забудь nullable добавить, если хочешь без required
Кому может поможет
Route::group(['namespace' => '\App\Http\Controllers\Admin\Post'], function () {
Route::prefix('/admin')->group(function () {
Route::get('/post', 'IndexController')->name('admin.post.index');
});
});
Undefined variable $projects (View: F:\lessons\first_project
esources\views\admin\includes\sidebar.blade.php)
class AppServiceProvider
public function boot()
{
Paginator::defaultView('vendor.pagination.default');
View::composer('admin.includes.sidebar', function ($view) {
$view->with('projectsCount', Project::all()->count());
});
}