These are chat archives for LaravelRUS/chat

23rd
Dec 2017
Roman
@DoctorLines
Dec 23 2017 04:03
Всем привет!
Кто-нибудь сталкивался с такой проблемой, что на Homestead все бинарные файлы определяются с mime type application/octet-stream?
file -b --mime music.mp3
application/octet-stream; charset=binary
тот же файл локально:
file -b --mime music.mp3
audio/mpeg; charset=binary
Из-за этой гадости валидатор лары не пускает нормальные файлы на загрузку!
Roman
@DoctorLines
Dec 23 2017 04:08

Банальная проверка

$this->validate($request, ['file' => 'required|mimes:mp3']);

отбраковывает любой mp3

у всех guessExtension определяется как bin
Sergei Kol'miller
@kolserdav
Dec 23 2017 09:45

Здравствуйте! У меня такая проблема, никак не могу загуглить, решил спросить, может повезет.
В контроллере пытаюсь сделать выборку через модель таким вот образом:

 class SpeatcherController extends Controller
{

    public function index(){
        $speatcher=Speatche::orderBy('category')
            ->get();
        return view('mine.speatch',compact('speatcher'));
    }
}

В итоге IDE не видит метод orderBy, причем команда all() на этом месте работает, но включается она из родительского класса модели (Model), а там нет orderBy(). Есть он в .../Query/Builder, но это пространство имен не может подключаться. Еще where() работает, но она вообще из Collection.php прилетает. P.S: приведенный пример кода не единственный, пробовал во разному, но orderBy никак не определяется ни в контроллере ни в модели.

Lander931
@Lander931
Dec 23 2017 09:57

@KOLSERDAV

Есть он в .../Query/Builder, но это пространство имен не может подключаться.

Почему это не может?

@KOLSERDAV Посмотри что расширяет твой класс Speatche
Sergei Kol'miller
@kolserdav
Dec 23 2017 10:01

@Lander931 Класс расширяет вот что:

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Query\Builder;

Я сейчас добавил use Illuminate\Database\Query; Но IDE указывает его курсивом и отвечает, что он "is never used".

Lander931
@Lander931
Dec 23 2017 10:02
@KOLSERDAV я про то, от чего он наследуется а не про то что использует
Sergei Kol'miller
@kolserdav
Dec 23 2017 10:03
Смотрел он наследуется от Model а там нет orderBy
Lander931
@Lander931
Dec 23 2017 10:05
@KOLSERDAV нужно глубже искать
@KOLSERDAV в Model как раз и создаётся кверибилдер
Sergei Kol'miller
@kolserdav
Dec 23 2017 10:10
@Lander931 Значит мне модель надо настроить, но по идее и так должно работать... наверно)
class Speatche extends Model

{
    protected $fillable = ['category','body_speatch'];

}
Sergei Kol'miller
@kolserdav
Dec 23 2017 12:07

Проблему видимости orderBy удалось решить добавлением метода on в модель:

    public static function on($connection = null)
    {
        $instance = new static;
        $instance->setConnection($connection);
        return $instance->newQuery();
    }
}

И запуском этого метода из контроллера:


    public function index(){
        $speatcher= Speatche::on()
            ->where('id',2)
            ->orderBy('category')
            ->get();
        return view('mine.speatch',compact('speatcher'));
    }

Запрос идет, where отрабатывает, уже из Query/Builder , а вот orderBy хоть и в запрос вписывается, но результата не даёт (выборка происходит только по where).

Andrei Sosnov
@atehnix
Dec 23 2017 14:57
@KOLSERDAV category - это название поля в таблице твоей модели? Что оно содержит?
Andrei Sosnov
@atehnix
Dec 23 2017 15:09
@KOLSERDAV Да и вообще, объясни что конкретно ты хочешь получить в результате, коллекцию моделей с сортировкой, одну модель по ID, первую модель после сортировки или что еще?
А то ты своим "методом тыка" все в кучу навалил. А что хотел в итоге получить - не сказал. ;)
Виталя
@ferraghue
Dec 23 2017 15:55

Привет. Подскажите пожалуйста, а возможно ли передавать данные с одного таска (Job) в другой, если они выполняются в цепочке (chaining queue)
Job1 -> Job2 -> Job3

Например с Job1 передать данные, в случае успешного завершения, в Job2 и так далее

Sergei Kol'miller
@kolserdav
Dec 23 2017 16:24
@atehnix category содержит строку с названием категории. Хочу настроить работу Eloquent на простых примерах. В данном примере, просто хочу получить успешный результат выборки, а именно названии категории под id - 2.
Pakharenko
@Pakharenko
Dec 23 2017 17:10
Привет всем!Подскажите как загрузить дамп базы на хостинг?Скачал, а вот ругается когда делаю экспорт на хостинге
Ругается на миграции, а потом и дальше на всё остальное.Странно получается
Sergei Kol'miller
@kolserdav
Dec 23 2017 17:18
@Pakharenko Че сильно ругается?
Pakharenko
@Pakharenko
Dec 23 2017 17:18
@KOLSERDAV Вроде всё нормально.Сейчас буду тестить.Спасибо
KarmaBot
@KarmaBot
Dec 23 2017 17:18
Спасибо (+1) для @KOLSERDAV принято! Текущая карма +1.
Sergei Kol'miller
@kolserdav
Dec 23 2017 17:22
@Pakharenko @atehnix @Lander931 Просто сказать. Спасибо
KarmaBot
@KarmaBot
Dec 23 2017 17:22
Спасибо (+1) для @Pakharenko принято! Текущая карма +2.
Спасибо (+1) для @atehnix принято! Текущая карма +249.
Спасибо (+1) для @Lander931 принято! Текущая карма +6.
JhaoDa
@jhaoda
Dec 23 2017 17:31
Налетаем, котоны, кому интересно — https://github.com/appwilio/cdek-sdk
Andrei Sosnov
@atehnix
Dec 23 2017 17:39

@KOLSERDAV

получить успешный результат выборки, а именно названии категории под id - 2

Вот вроде по-русски написано, но смысл от меня ускользает.. =)

@KOLSERDAV $category = Speatche::find(2)->category; ?
Sergei Kol'miller
@kolserdav
Dec 23 2017 17:49
@atehnix Я только начал laravel изучать, много чудес, для меня. Работает. Спасибо
KarmaBot
@KarmaBot
Dec 23 2017 17:49
Спасибо (+1) для @atehnix принято! Текущая карма +250.
Andrei Sosnov
@atehnix
Dec 23 2017 17:52
@KOLSERDAV ну ок) Просто, к чему там в вопросе было упомянуто orderBy() для меня осталось загадкой..)
Pakharenko
@Pakharenko
Dec 23 2017 17:54
Перенёс сайт на Laravel на хостинг.Не работает регистрация хотя на локалке всё работает - в чём причина можете подсказать?
Sergei Kol'miller
@kolserdav
Dec 23 2017 17:54
@atehnix просто там where была до кучи, а тестировал я orderBy. Например мне нужно будет все категории получить.
Lander931
@Lander931
Dec 23 2017 17:54
@Pakharenko что значит не работает?
@Pakharenko ошибку какую-то выдаёт или как это "не работает"?
Pakharenko
@Pakharenko
Dec 23 2017 17:57
Перекидывает на странице не найдено
Почему так?
Lander931
@Lander931
Dec 23 2017 17:57
@Pakharenko что за страница?
Pakharenko
@Pakharenko
Dec 23 2017 17:57
@Lander931 ну точнее на родную страницу 404
Lander931
@Lander931
Dec 23 2017 17:58
@Pakharenko урл какой?
Pakharenko
@Pakharenko
Dec 23 2017 17:58
изначально было action="{{ route('register') }}
но нужно менять его так понимаю
Lander931
@Lander931
Dec 23 2017 17:59
@Pakharenko посмотри какие у тебя роуты есть
php artisan route:list вроде так, если ничего не путаю
Pakharenko
@Pakharenko
Dec 23 2017 18:00
@Lander931 Route::get('auth/register', 'Auth\RegisterController@index'); Нужно прописать auth/register
Lander931
@Lander931
Dec 23 2017 18:01
@Pakharenko а ->name('register') у него есть?
Pakharenko
@Pakharenko
Dec 23 2017 18:01
нет
Lander931
@Lander931
Dec 23 2017 18:01
@Pakharenko )))
Pakharenko
@Pakharenko
Dec 23 2017 18:02
@Lander931 нужно прописать будет тогда
@Lander931 Спасибо
KarmaBot
@KarmaBot
Dec 23 2017 18:02
Спасибо (+1) для @Lander931 принято! Текущая карма +7.
Lander931
@Lander931
Dec 23 2017 18:02
@Pakharenko ну так хелпер route($name) принимает имя роута
Pakharenko
@Pakharenko
Dec 23 2017 18:02
@Lander931 да из головы вылетело
Andrei Sosnov
@atehnix
Dec 23 2017 18:03
@Pakharenko погоди-ка, а с чего ты взял, что локально у тебя регистрация работает?
Lander931
@Lander931
Dec 23 2017 18:04
@Pakharenko действительно) она не может работать если там тоже имя не задано к роуту
Pakharenko
@Pakharenko
Dec 23 2017 18:04
@Lander931 @atehnix Сам не знаю.всё работает
Я к этому значению и не придал внимания
Lander931
@Lander931
Dec 23 2017 18:04
@Pakharenko точнее регистрация мб и работает, но переход через route('register') не получится
Pakharenko
@Pakharenko
Dec 23 2017 18:07
@Lander931 Не получается после того как прописал ->name('register')
Lander931
@Lander931
Dec 23 2017 18:07
@Pakharenko полной код роута скинь
Pakharenko
@Pakharenko
Dec 23 2017 18:08
@Lander931 Route::get('auth/register', 'Auth\RegisterController@index');
@Lander931 Route::get('auth/register', 'Auth\RegisterController@index')->name('register);
Lander931
@Lander931
Dec 23 2017 18:09
@Pakharenko ничего не видишь?
Andrei Sosnov
@atehnix
Dec 23 2017 18:09
@Pakharenko кавычку пропустил
Lander931
@Lander931
Dec 23 2017 18:09
@Pakharenko IDE - блокнот?)
Pakharenko
@Pakharenko
Dec 23 2017 18:09
@atehnix да это я в ручную набил только что
@Lander931 phpstorm
@Lander931 Whoops, looks like something went wrong. вот что пишет
Andrei Sosnov
@atehnix
Dec 23 2017 18:11

@Pakharenko блин, как же мне нравятся такие исчерпывающие описания проблемы:

Не работает

Не получается

Pakharenko
@Pakharenko
Dec 23 2017 18:12
@atehnix Но вот почему теперь так
Andrei Sosnov
@atehnix
Dec 23 2017 18:14
@Pakharenko есть логи, есть debug-режим, есть dd() в конце концов..

@Pakharenko

Но вот почему теперь так

Потому что "Что-то пошло не так."(с)

Sergei Kol'miller
@kolserdav
Dec 23 2017 18:20
@atehnix Что вот ему надо? Ошибок SQL нету и результат пустой. В СУБД запрос срабатывает, а из Лары нет.
        $category= Speatche::orderBy('category');
Andrei Sosnov
@atehnix
Dec 23 2017 18:21
@KOLSERDAV результат не пустой. Результат - билдер. Потому что запрос ты не выполнил.
Sergei Kol'miller
@kolserdav
Dec 23 2017 18:22
Так чтоли?
$category= Speatche::orderBy('category')->get();
Так он просто всё выдает.
Andrei Sosnov
@atehnix
Dec 23 2017 18:23
@KOLSERDAV да. Результатом будет коллекция, отсортированная по имени категории.
Sergei Kol'miller
@kolserdav
Dec 23 2017 18:24
@atehnix А как все категории вывести?
Andrei Sosnov
@atehnix
Dec 23 2017 18:29

@KOLSERDAV почитай в доке про связи. Вынесешь категории в отдельную модель и свяжешь ее со "спитчами".
Сможешь получать все категории, получать спитчи в конкретной категории, получать категорию конкретного спитча и т.д.

Заодно, можешь погуглить что такое нормализация бд.

Sergei Kol'miller
@kolserdav
Dec 23 2017 18:32
Пр @atehnix Спасибо
KarmaBot
@KarmaBot
Dec 23 2017 18:32
Спасибо (+1) для @atehnix принято! Текущая карма +251.
Anton Shelestov
@shelestovas
Dec 23 2017 20:21

Народ, подскажите плиз.
есть структура папок http://joxi.ru/V2VYqp7txRVKLm в application расположен laravel
Изучаю laravel-mix и не могу понять как заставить его адекватно работать с такой структурой...
Настройки webpack.mix.js:

let mix = require('laravel-mix');

mix.setPublicPath('../public_html/assets/');
mix.js('resources/assets/js/app.js', 'js/scripts.js')
    .sass('resources/assets/sass/app.scss', 'css/style.css');

mix.copyDirectory('resources/assets/fonts/', 'fonts')
    .copyDirectory('resources/assets/images/', 'images');

if (mix.inProduction()) {
    mix.version();
}

Причем изображения и шрифты которые используются в sass копируются как надо, а вот то что не используется в стилях копируется в корень папки application.
И в самих стилях например background-image: url('../images/fullwidth.jpg') меняется таким образом что смотрит в корень public_html, а не в папку assets

Mikhail Sychev
@snutworks
Dec 23 2017 20:34
Всем привет! У меня есть 3 сущности которые можно комментировать, комментарии полиморфны, присутствую поля commentable_id/type обработка добавления/редактирования/ответа на коммент/удаления делается для каждой сущности своим контроллером. Код копипастится. Не есть хорошо. Как поступить в такой ситуации? Краеугольный камень - мне надо знать к какой сущности относится комментарий. правильно ли я понимаю, что стоит вытащить механику обработки самого комментария в сервис, а в контроллерах оставить только дерганье сервиса и редирект в нужную страницу?