Ответы пользователя по тегу Laravel
  • Как передать список роутов с сервера на клиент?

    @newpy
    web-dev
    $routeCollection = Route::getRoutes();
    
    foreach ($routeCollection as $value) {
        echo $value->getPath();
    }


    Route::getByName()
    Route::getByAction()


    Смотри в Ларавел API класс Route и RouteCollection, методы доступны через фасады
    Ответ написан
  • Почему вылезает данная ошибка Laravel?

    @newpy
    web-dev
    Это потому, что в routes.php не определен роут для данного экшена UsersController@getActivate.
    Надо маршрут прописать в routes.php к нему. Нечто вроде
    Route::get('/users/activate', 'UsersController@getActivate')
    Ответ написан
    Комментировать
  • Какая функция выполняет связывание таблиц в Eloquent ORM Laravel?

    @newpy
    web-dev
    https://laravel.com/docs/5.2/eloquent-relationship...
    в классе модели, отношения задают методы например hasMany(), hasOne(), belongsTo()
    Пример из документации:
    belongsTo принимает три параметра, два последних необязательны (нужны если вы хотите переопределить ключи), смотрите документацию EloquentORM, ссылка выше.
    public function user()
    {
        return $this->belongsTo('App\User', 'foreign_key', 'other_key');
    }
    Ответ написан
    Комментировать
  • Почему не работает выборка в laravel?

    @newpy
    web-dev
    Во первых скорей всего перепутали порядок передаваемых параметров:
    первым идет foreign_key, вторым local_key.
    Во-вторых могли перепутать еще и сущности, судя по вашим словам.

    class News
    public function company()
    {
         return $this->hasMany('App\Company', 'id', 'source_id');
    }
    
    class Company
    public function news()
    {
         return $this->belongsTo('App\News');
    }


    В-третьих: стоило бы для понимания описать отношения между вашими сущностями. Потому как ваши слова только запутывают. Опишите сущности Company и News. Например: многим/одной Компании может принадлежать много Новостей, множество Новостей могут принадлежать одной/многим Компаниям. Так как собственно от этого зависит как правильно описать отношения (relations) в моделях. Уверен если на бумажке черканёте себе таким простым текстом, то и вам станет понятнее что и где прописывать, и как правильно.
    Ответ написан
    Комментировать
  • Как правильно использовать twig в laravel?

    @newpy
    web-dev
    С чего вы решили что просто переименовав файлы blade.php на twig у вас будет twig работать?
    У Ларавел свой шаблонизатор. Для того чтобы пользоваться твигом, надо его подключать. Надо подключить Twig в ядре приложения. А не просто переименовать файлы или установить его.

    Другой вопрос зачем вам это, если уже есть шаблонизатор встроенный? Надо реально понимать отличия или необходимость, чтобы прийти к замене одного шаблонизатора на другой.

    И причем тут твиг и перенаправление на авторизацию? Твиг на это никак не влияет. Вам уже ответили что перенаправление на авторизацию срабатывает из-за добавленной в конструктор контроллера строки $this->middleware('auth'). Этим самым вы вызываете middleware авторизации, что означает что, пока вы не авторизуетесь, у вас контроллер не будет работать.

    Вы смысл того что вы пишите понимаете? Или стоит все таки разобраться с основами?
    Если разобрались, тогда стоило бы выложить код, как вы подключали Twig.
    С авторизацией: просто уберите конструктор в контроллере, и приложение не будет требовать авторизацию. Если вы задумали так, что она все таки нужна, то оставляйте, и авторизуйте пользователя при выполнении любого метода контроллера.

    По существу вам уже были даны два ответа: Finnish про использование TwigBridge, и javanub про авторизацию. Я же вам дам совет использовать пока Blade и вернуть все как было.
    Ответ написан
  • Почему выходит [pdoexception] sqlstate[hy000] [2002] no such file or directory в Laravel 5?

    @newpy
    web-dev
    проверить в .env DB_HOST заменить на 127.0.0.1, возможно mysql создает сокет в /var/run/mysql/mysql.sock
    php.ini тогда так:
    mysql.default_socket = /var/run/mysqld/mysqld.sock
    mysqli.default_socket = /var/run/mysqld/mysqld.sock
    pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock

    Или как узнать сокет:
    $ mysql -uroot -p
    mysql> show variables like '%sock%';

    покажет путь сокета, останется прописать в php.ini
    Ответ написан
    1 комментарий