Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Лаконичное создание меню навигации » 30.08.2015 01:15:47

stuchin пишет:

много проблем с меню получается

Да нет особых проблем, просто хотелось сделать красиво. С хелперами вариант понравился. Лаконично. Склонировал тот проект bestmomo/laravel5-example себе, много чего интересного подсмотрел. Многоязычность ту же.
Еще раз всем спасибо.

#2 Re: Laravel 5.x » Лаконичное создание меню навигации » 19.08.2015 19:55:11

Спасибо, ребята. Буду пробовать.
Просто тема актуальная, скажем так, для 90% проектов. И было интересно, кто как делает.
Думал вообще формировать массив кнопок меню в middleware, но сомневался - может слишком сложно будет))

#3 Re: Laravel 5.x » Лаконичное создание меню навигации » 19.08.2015 12:20:02

Эхх, все молчат(
Хотя бы как правильно проверять текущий путь внутри @if вставки во вьюшке, подскажите?
Т.е. если есть три роута:

/
/profile
/about

- то как проверять "где мы сейчас", чтобы выделять классом active пункт меню?

#4 Laravel 5.x » Лаконичное создание меню навигации » 18.08.2015 14:40:29

Phizio
Ответов: 15

Ребята, что-то мучаюсь с индикацией активного пункта меню сайта...
Все элементы реализованы через стандартные бутстрапные ul > li с классом active для активного пункта.
Как наиболее коротким и красивым способом сделать такую "подсветку" активного пункта?

Пробовал через @if (Route::currentRouteName() = '...') - но что-то пока не разобрался.
Наверное надо еще полное пространство имен указывать для фасада Route?

Или вообще в Middleware / ServiceProviders формирование массива пунктов вынести?
Может, подскажете проверенные варианты wink

#5 Re: Прочее » Вики-разметка на форуме и в статьях » 17.07.2015 15:45:14

Классно было бы какой-то визуальный редактор прикрутить конечно wink

#6 Re: Laravel 5.x » Подключение плагинов из vendor-папки » 17.07.2015 15:09:09

Вопрос в принципе решил:
app/Providers/AppServiceProvider.php

    public function boot()
    {
        $this->publishes([
            base_path('vendor/components')  => public_path('assets'),
        ], 'public');
    }

теперь по команде artisan vendor:publish
содержимое vendor/components (bootstrap и jquery в данном случае) публикуется в public/assets

Аналогично планирую добавить зависимости и для остальных используемых скриптов.
Также настроил Composer для автоматической публикации после обновления версий плагинов
composer.json

        "post-update-cmd": [
            "php artisan optimize",
            "php artisan vendor:publish",
        ],

#7 Re: Laravel 5.x » Подключение плагинов из vendor-папки » 17.07.2015 13:55:08

Попробовал пример из http://laravel.com/docs/5.1/packages#public-assets - там в примере пути какие-то странные,
по идее же из vendor наоборот должно копироваться в публичную папку с вьюхами...
Попробовал поменять пути на свои, но после артизан-команды vendor:publish он не всю папку скопировал а какой-то один единственный sass-файл. В общем, пока темный лес для меня...)

К Laravel Homestead присматриваюсь, но пока боюсь переходить, т.к. проектов в работе много, и дедлайны сдвинутся, - день-два все равно на "переезд" убьешь. Как всегда - привычное и освоенное "тянет" назад.
Суть сборщиков я понял, минимификация и конкатенация, хеширование имен для подгрузки новых версий в браузеры без рефреша.
Это все круто - и я уже чувствую, что мне это нужно бывает... Но не настолько крупные проекты, наверное еще )) Обхожусь "ручками".

Сейчас хочется больше попробовать сам Laravel изнутри. Т.е. не хочется тратить много времени на освоение сборщиков. Разумеется, попозже я вернусь к этой теме. Именно из этих соображений, хотелось бы простой и банальный пример реализации в Laravel-структуре: на примере  bootstrap3 + jquery - как в простейшем случае их более-менее правильно и без "костылей" подключить к страницам и прописать в layout-ах шаблонов. Создать папку assets внутри папки с вьюхами и туда закинуть css-js?
Ну или может доразвить ту идею с artisan vendor:publish - возможно, я что-то недопонял wink

#8 Re: Laravel 5.x » Подключение плагинов из vendor-папки » 17.07.2015 09:35:33

Я так понимаю, там все завязано на Node.js
А как быть с проектами для работы на шаред-хостингах?
Ну, а если даже предположить, что gulp будем запускать на локалке а на хостинг просто сливать нужные файлы - то
я честно говоря не представляю, как этот gulp запустить на OpenServer-е локальном. Там вроде тоже нет node.js.. (

#9 Laravel 5.x » Подключение плагинов из vendor-папки » 16.07.2015 15:26:33

Phizio
Ответов: 7

Не так давно начал работу с Composer, хотелось бы понять вот какие моменты:
1. Как во вьюшках, в HTML корректно и профессионально прописать ссылки на нужные скрипты плагинов? (если указывать /vendor/... - то роутинг "не пускает" - ведь они не в public лежат)
2. Может быть, есть какой-то профессиональный способ указания подобных asset'ов где-то в массиве конфигурации? Чтобы теги со ссылками в <head> разделе формировались автоматически...
3. Если все же вручную прописывать, то может есть какие-то горячие клавиши в phpstorm чтобы быстренько выбрать файл в открывшемся файл-менеджере, и ссылка на него вбилась после позиции курсора... Скорее всего есть что-то подобное?
А то я как-то костыльно лажу по дереву ресурсов слева, жму у файла Copy Reference, потом вставляю в код, укорачивая начальные C:/OpenServer/domains/... wink

В общем, я думаю, ответы на эти вопросы, попутные советы и мысли наверняка будут полезны и интересны многим.
Можно рассмотреть вот на примере установки пакета bootstrap и jquery через композер.
Они в итоге лежат у меня в папках
vendor/components/bootstrap
vendor/components/jquery

#10 Re: Laravel 5.x » Не работают группы неявных маршрутов к контроллерам » 16.07.2015 13:27:07

'App\\Http\\Controllers\\DocumentsController' => $baseDir . '/app/Http/Controllers/DocumentsController.php',
еще попробовал поиском Documents.php поискать злополучный/некорректный - не нашлось.
Т.е. как будто бы все четко должно роутиться, DocumentsController.php, как и положено по спецификации.
А благодаря дампу композера нашел один свой косяк (не относящийся к данной теме):
Выполнив composer dump-autoload, увидел, что две миграции содержали одинаковое имя класса CreateUsersTable
(первая была "из коробки", а вторую я видимо по ошибке назвал точно так же)

#11 Re: Laravel 5.x » Не работают группы неявных маршрутов к контроллерам » 15.07.2015 16:48:35

Где-то закешировалось, похоже.. (
Хотя сбрасывал artisan-ом кеш и роутинга, и общий кэш laravel, - но не помогло.
Переименовал в Docs, все работает, но вот такие затыки как-то демотивируют (и покоя не дают wink
Думаешь, а что будет как копнешь чуть глубже? Когда уже и на форуме ответа не сыскать будет.
Печалько..

#12 Re: Laravel 5.x » Не работают группы неявных маршрутов к контроллерам » 15.07.2015 12:41:55

Через консоль и создавался, дружище )

Phizio пишет:

сам контроллер создан через artisan
class DocsController extends Controller
и содержит все методы (index, create, ...)

#13 Re: Laravel 5.x » Не работают группы неявных маршрутов к контроллерам » 15.07.2015 12:35:06

Оу, точно - спасибо)
А по второму моменту? По поводу имени контроллера DocumentsController? Почему он какой-то файл Documents.php ищет и выплевывает исключение?
RGrgEDVnxKRJaxBMEbPBP99PTCiEqH36-dhmd06Aoqid6t2rA8EfBsc-f7B1jYZG6Pj9R_QI-CR9AKC3KOYflQ==?uid=0&filename=2015-07-15%2012-38-21%20Скриншот%20экрана.png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&tknv=v2&rtoken=68a40c23afb0843fcbaa250591faf9be&force_default=no

#14 Laravel 5.x » Не работают группы неявных маршрутов к контроллерам » 14.07.2015 18:12:37

Phizio
Ответов: 8

Простите за нубский вопрос, только начинаю разбираться с фреймворком.
Но у меня почему-то не работает простейшая конструкция задания группы неявных маршрутов, которую применяют во многих уроках
Route::controller('docs', 'DocsController');
сам контроллер создан через artisan
class DocsController extends Controller
и содержит все методы (index, create, ...)
Выдает ошибку NotFoundHttpException in RouteCollection.php line 143:
Вывел все маршруты в консоли artisan:
GET|HEAD|POST|PUT|PATCH|DELETE | docs/{_missing} |      | App\Http\Controllers\DocsController@missingMethod
Явно заданные маршруты (через ::get и @method контроллера) - работают нормально.
Что я не так делаю, подскажите? wink

и вопрос 2 - у меня почему-то упорно не работала конструкция
Route::get('documents', 'DocumentsController@index');
Причем стоило переименовать везде Documents на Documents2 - все работало.
Такое чувство, что laravel закешировал где-то этот documents маршрут, и адресовал на какой-то не тот контроллер.
Очистка кеша марштуров в артизане тоже не помогала... Или documents - это какое-то запрещенное имя?
В ошибке кстати было, что фреймворк не может найти файл Documents.php при этом
include(C:\OpenServer\domains\laravel.loc/app/Http/Controllers/Documents.php): failed to open stream: No such file or directory
(странно, ведь должен был искать DocumentsController.php , разве не так?)

Хочется уже доразобраться с маршрутами окончательно, чтобы потом не возвращаться к этому особо.
Ведь по сути это достаточно простая тема. Но вот такие затыки) заранее спасибо за ответы всем!

Подвал раздела