Laravel по-русски

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

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

#1 Laravel 5.x » Конструктор запросов. Join » 21.12.2017 12:00:28

ke1evra
Ответов: 1

Как мне реализовать аналог joinWith из Yii2? Чтобы таблица шла через left join, и поля были доступны по типу $table->second_table->field

Если делать по мануалу - получается два запроса в базу, чего я категорически не хочу делать:

$user = User::find(1);
$profile = $user->profile;

Если использовать with, получается не совсем то, и тоже два запроса в базу.

Если напрямую джоинить, то непонятно как к полям profiles обращаться. описывать их всех в родительской модели не вариант

$user = User::leftJoin('profiles as p','p.id','=','users.id')->where('users.id',Auth::user()->id)->first();

Поля которые не повторяются, нормально работают. А что делать, допустим, когда таблицы имеют стандартные поля created_at, updated_at, как их различать?
Писать тупо

select(['table_one.*','my_awesome_table.created_at as mat_cat'])

Получается "мощщщная" ORM Eloquent довольно избыточная, как в плане запросов в базу, так и в плане кода.
Как же так... Что делать???

#2 Re: Laravel 5.x » app.js » 07.12.2017 19:37:39

Я просто установил базовый проект и включил авторизацию
http://joxi.ru/VrwE8dyfKRg9d2

И в итоге npm run dev выдает
DONE  Compiled successfully in 4503ms                                                                                                                  Asset     Size  Chunks                    Chunk Names
  /js/app.js  1.29 MB       0  [emitted]  [big]  /js/app
/css/app.css   177 kB       0  [emitted]         /js/app

если отключить vue, то все равно остается 33200 строк, какието webpackи, lodash, sizzle и прочая ересь.
    "devDependencies": {
        "axios": "^0.16.2",
        "bootstrap": "4.0.0-alpha.6",
        "cross-env": "^5.1.1",
        "jquery": "^3.1.1",
        "laravel-mix": "^1.6.2",
        "lodash": "^4.17.4",
        "popper.js": "^1.13.0",
        "vue": "^2.5.9"
    },
    "dependencies": {
        "glob": "^7.1.2",
        "graceful-fs": "^4.1.11"
    }

из всего этого я только бутстрап3 поменял на 4. все зависимости из коробки. ларавел 5.5.
не знаю откуда у кого-то 0 строк может быть

#3 Laravel 5.x » app.js » 07.12.2017 01:24:23

ke1evra
Ответов: 7

Посмотрел и ужаснулся - 44535 строк кода JS. Разве можно трезво судить о производительности?
Тот же Yii2 - 10000 строк JQuery + 2000 bootstrap + 500 строк yii.js

Это вообще лечится? Мне как бы нравится laravel, начал вот только изучать, но меня напрягает 80% "пустого" кода, который в моем проекте вообще не понадобится. Что уже говорить о мобильных устройствах - во первых смартфонам это всё нужно компилировать, а это расход батареи, во вторых лимитированный мобильный трафик. К примеру, читая новости на телефоне, обхожу стороной ria.ru, т.к. там чтоб прочитать одну новость в среднем нужно 4 мегабайта(!)

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