Задать вопрос
Ответы пользователя по тегу Laravel
  • Почему при запуске джобы Laravel падает?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Просто обновить дамп автолоадера композера. Спасибо за совет Сергей delphinpro
    Ответ написан
    Комментировать
  • Почему не применяются настройки подключения в Laravel на лету?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Получилось найти решение самостоятельно.
    Подойдёт, возможно, не всем, так что обратите внимание на ответ Григорий Васильков

    В моём же случае подошёл просто принудительный реконнект к базе после смены настроек
    \DB::connection('pgsql')->reconnect();
    Ответ написан
    Комментировать
  • Как правильно подключиться к websocket серверу Laravel?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Решение оказалось очень простым:
    1. Добавить аутентификатор
    2. Убедиться в правильности параметра Encrypted. У меня он, как оказалось, должен быть фолс
    Pusher pusher = new Pusher("bar", new PusherOptions { 
                    Encrypted= false,
                    Host= "localhost:6001",
                    Authorizer = new HttpAuthorizer("localhost:8000/websockets-dashboard/auth")
    });
    Ответ написан
    Комментировать
  • Как заставить работать и web и api авторизацию в Laravel?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил.
    Мой ответ, скорее всего, никому не понравится, но для меня это стало решением.
    Предложенный в комментариях ларавель паспорт лично мне показался ерундой.

    Там же в комментариях предложили вариант написать middleware которая переключает guard по необходимости.

    Я же пошёл у себя на проекте по пути наименьшего сопротивления и просто написал свой сервис проверки токенов, поступающих в запросах от АПИ и добавил свою middleware, которая этот сервис дёргает.

    Таким образом стандартные веб запросы работают через нативный функционал авторизации Ларавель (веб сессии), а запросы к АПИ работают через самописную JWT авторизацию.
    Ответ написан
    Комментировать
  • Как отправить почту по smtp в Laravel с разных адресов?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Собственно, сам спросил, сам ответил, но, может ещё кому пригодится

    $configs = Config::get('mail.mailers.smtp');
    $configs['host'] = 'smtp.yandex.ru';
    
    config()->set('mail.mailers.smtp', $configs);
    Ответ написан
    Комментировать
  • Eloquent Save не обновляет данные. Один и тот же код, разные сервера. Что может быть не так?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    И так, решение я нашёл. Очевидность этого решения оставляет желать лучшего, но, надеюсь, если кто-то столкнётся с такой же проблемой, то это ему поможет.

    На поиск решения меня натолкнул ответ товарища Илья

    Я попытался подключить "прослушку" запросов к базе и запись их в лог файл, так как иначе на проде поступить просто нет возможности.

    Так как я использую Eloquent вне фреймворка, то тут пришлось поколдовать.
    Там же, где у меня объявляется капсула для задания конфигов подключения к БД дописал.

    use Illuminate\Database\Capsule\Manager as DB;
    ...
    DB::listen(function ($query) {
    			file_put_contents(BasePath("files/DB.log"), $query->time.' - '.$query->sql.' ['.json_encode($query->bindings).']'.PHP_EOL, FILE_APPEND);
    		});

    И вот тут я столкнулся с очень интересной ситуацией. Этот код работал на локальном сервере и не работал на на удалённом.
    Это странно и так быть не должно и не может, так как здесь же устанавливались настройки подключения к базе, а к базе подключение происходит нормально, но факт остаётся файтом.

    А результате решением стал перевод всех имён файлов и классов в нижний регистр.
    и обновление файла автолоад композера.

    Тупость? Возможно.. Но это сработало. Конкретно у меня был один скрипт APIController.php и в нём одноимённый класс. После переименования в apicontroller как имени файла, так и класса, всё стало работать как надо.
    Ответ написан
  • Как вывести компании по количеству комментариев?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    ->where('Comments', '>', 8)

    Дополняю ответ для большей достоверности

    Мой ответ дан ровно так, как задан вопрос. Однако же, в реальности комменты, и их число не будут храниться в той же таблице. Скорее всего, есть какая-то таблица с внешним ключом на таблицу компаний, вам нужно сделать JOIN этой таблицы и в условии опираться уже на количество записей в ней, а не в основной таблице.
    Ответ написан
  • Как запретить Eloquent экранировать сырые запросы?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    В общем-то ответ я нашёл сам и его истоки, как выяснилось, совсем не там, куда я смотрел.

    Проблема была в том, что я наивно полагал, что раз в запросе есть слово SELECT, то и у Eloquent мне нужно вызывать метод Select
    Однако то, что этот самый селект производился, грубо говоря, в файл и, как следствие, не возвращал результатов и приводило к ошибке.
    Я заменил DB::select на DB::statement и всё стало хорошо.
    Ответ написан
    Комментировать
  • Как загружать картинки на сервер Laravel?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Код функции, которую я использую в своих проектах.
    Подразумевается загрузка с помощью AJAX, то сути дела это не меняет

    public function uploadGallery(Request $req) {
    	try {
    		$files = $req->file('photo');
    		foreach ($files as $file) {
    			$tmp1 = md5(microtime());
    			$tmp2 = md5(uniqid());
    			$newName = strtolower(substr(base64_encode($tmp1 . $tmp2), 0, 7)).'.'.$file->getClientOriginalExtension();
    //здесь важная поправка куда перемещать - это абсолютный путь
    //так что к слову media в моём случае нужно ещё применить функцию base_path или конкотинировать результат функции public_path
    			$file->move('media', $newName);
    			//Storage::putFileAs('/public/ //строчка закомментирована, но можно использовать её
    		}
    	} catch (\Exception $err) {
    		//$errorcode = $err->getMessage();
    	}
    }
    Ответ написан
    Комментировать