@laravel_pro

Страница 1494 из 2014
Timur
19.06.2018
06:25:45
?

Илья
19.06.2018
06:25:59
но это извращение чисто теоретическое
а теперь давай чисто практически

по всем канонам нормализации

Dmitriy
19.06.2018
06:26:08
вроде такого

Google
Timur
19.06.2018
06:26:08
Теоретическое извращения тут нет смысла обсуждать

Илья
19.06.2018
06:26:40
вроде такого
это нарушение 1нф, иди свои ссылки перечитай

Dmitriy
19.06.2018
06:28:09
Как с вами тяжело...

Илья
19.06.2018
06:32:48
Как с вами тяжело...
Потому что ты начал речь о "теоретических извращениях", а ссылки кидал на информацию про нормализацию

Dmitriy
19.06.2018
06:33:51
на теоретических извращениях я вроде закончил

или нет ?

Илья
19.06.2018
06:36:17
или нет ?
окей, вернёмся к вопросу есть пользователи (name, email, status), если роли (name, description) как уместить в 2 таблицы?

Dmitriy
19.06.2018
06:36:57
Выше уже написали

Илья
19.06.2018
06:37:26
Выше уже написали
кто написал?

Daniel
19.06.2018
06:42:47
окей, вернёмся к вопросу есть пользователи (name, email, status), если роли (name, description) как уместить в 2 таблицы?
а что тут сверхсложного? Одна таблица - пользователи, другая - роли. Всё. С третьей (pivot) удобнее, но можно и обойтись.

Stanislav
19.06.2018
06:43:47
В общем виде есть такие модели (структура передана в сути): ` / * Structure: id | transaction_id | code */ class SmsConfirmation extends Model { public function transaction() { return $this->belongsTo(Transaction::class, 'transaction_id', 'id'); } } / * Structure: id | wallet_from | wallet_to */ class Transaction extends Model { public function wallet() { return $this->belongsTo(Wallet::class, 'wallet_from', 'id'); } public function smsConfirmation() { return $this->hasMany(SmsConfirmation::class, 'transaction_id', 'id'); } } /** * Structure: id | phone */ class Wallet extends Model { public function transactions() { return $this->hasMany(Transaction::class, 'wallet_from', 'id'); } } ` Пытаюсь вызвать SmsConfirmation::first()->transaction->wallet->phone; , получаю: "message": "Trying to get property 'phone' of non-object", В чем может быть проблема?

Alexandr
19.06.2018
06:43:52
что мы выиграем еслии уберем 3-ю таблицу? бессмысленное обсуждение. тогда на монго переходите

Илья
19.06.2018
06:44:01
а что тут сверхсложного? Одна таблица - пользователи, другая - роли. Всё. С третьей (pivot) удобнее, но можно и обойтись.
(у пользователя может быть много ролей, может ты не полностью разговор читал)

Google
Илья
19.06.2018
06:45:04
https://laravel.com/docs/5.6/eloquent-relationships#one-to-many
я же говорю, одному пользователю может соответствовать много ролей

Daniel
19.06.2018
06:45:30
А я ссылку на что скинул?)

A "one-to-many" relationship is used to define relationships where a single model owns any amount of other models.

Maksim (Ellrion)
19.06.2018
06:45:55
Не дай бог с таким на проекте встретиться)

Илья
19.06.2018
06:45:56
https://laravel.com/docs/5.6/eloquent-relationships#one-to-many
а в этом примере комментарий соответствует *одному* посту

Daniel
19.06.2018
06:46:16
Перевожу - одна модель имеет связь с множеством других моделей.

Собственно отношение так и называется - Один ко многим

Илья
19.06.2018
06:47:58
Перевожу - одна модель имеет связь с множеством других моделей.
Повторюсь, пользователю может соответствовать МНОГО ролей, роль может относиться ко МНОГИМ пользователям

Где тут один ко многим?

Daniel
19.06.2018
06:51:02
Что мешает прикрутить третью таблицу и не парить себе мозг?

Maksim (Ellrion)
19.06.2018
06:52:30
Я могу сколько угодно ролей назначить
А ещё ты можешь проебаться из за ограничения по длине; ещё искать пользователей с ролью определенной ты будешь через неэффективный лайк. А если нужно сразу с двумя ролями то вообще туши свет. А ещё ты пошлешь нафиг стондартный релейшен лары и все его возможности.

Илья
19.06.2018
06:55:55
Что мешает прикрутить третью таблицу и не парить себе мозг?
Да ничего не мешает, дискуссия началась с мнения @PM5000 о том, что промежуточные таблицы нарушают принципы нормализации

M
19.06.2018
06:58:17
Они наоборот для нормализации и придуманы

Даже в моей шараге такие основы проектирования СУБД были

И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол

Илья
19.06.2018
07:00:33
И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол
Глянь то, что выше кидали по этому поводу, там забавно ?

Maksim (Ellrion)
19.06.2018
07:02:47
И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол
Изи запихаем в стрингу ограниченной длины список с делемиторами) Надо ещё делемитор выбрать нестандартный тильду там например) а то запятая скучно

Google
Daniel
19.06.2018
07:03:35
можно дико извратиться с json колонками :D

Илья
19.06.2018
07:03:36
локально, но поймёшь

Daniel
19.06.2018
07:03:54
бесконечно длинными для role

Maksim (Ellrion)
19.06.2018
07:05:26
Я кстати ещё понял бы если бы таблицу ролей вообще не делали и колонка была джейсон

Stanislav
19.06.2018
07:13:13
Народ, нид хелп ))) не работает, и не понятно, почему В общем виде есть такие модели (структура передана в сути): /** * Structure: id | transaction_id | code */ class SmsConfirmation extends Model { public function transaction() { return $this->belongsTo(Transaction::class, 'transaction_id', 'id'); } } /** * Structure: id | wallet_from | wallet_to */ class Transaction extends Model { public function wallet() { return $this->belongsTo(Wallet::class, 'wallet_from', 'id'); } public function smsConfirmation() { return $this->hasMany(SmsConfirmation::class, 'transaction_id', 'id'); } } /** * Structure: id | phone */ class Wallet extends Model { public function transactions() { return $this->hasMany(Transaction::class, 'wallet_from', 'id'); } } Пытаюсь вызвать SmsConfirmation::first()->transaction->wallet->phone; , получаю: "message": "Trying to get property 'phone' of non-object", В чем может быть проблема?

Dmitry
19.06.2018
07:13:45
wallet не находит

Stanislav
19.06.2018
07:15:04
wallet не находит
точно... я же миграции рефрешил ((( спасибо!

Dmitry
19.06.2018
07:15:15
пожалуйста

Илья
19.06.2018
07:19:41
С которой началась дискуссия

M
19.06.2018
07:20:33
Все извращения с делиметерами и жсон не дадут контроля целостности, шах и мат

Oles
19.06.2018
09:26:54
Ребят,вот только начал изучать лару Хотел спросить, Примерно вот так выглядят роутеры в больших проектах ну + групирование и всё такое Я верно понял ?



Oleg
19.06.2018
09:27:40
Ещё алиасы, мидлвари

Ресурсные роуты и тд

Gleb
19.06.2018
09:27:49
У всех по разному

Oleg
19.06.2018
09:28:12
И роутов с клоужер вряд-ли найдешь в нормальном проекте

Google
Oles
19.06.2018
09:28:38
Ещё алиасы, мидлвари
Про алиасы читал , типа никнеймов с мидлварами еще не разбирался

Gleb
19.06.2018
09:29:10
У меня бывало, что на одну сущность по 20 ростов было. Поэтому я делал в парке routes ещё папку, в которой описывал маршруты к сущностям

Oles
19.06.2018
09:29:10
а можеш показать ,примерно ,кар выглядит роутер у среднего проекта,если это не топ сикрет)))

Maksim (Ellrion)
19.06.2018
09:36:35
а можеш показать ,примерно ,кар выглядит роутер у среднего проекта,если это не топ сикрет)))
https://github.com/LaravelRUS/laravel.ru/tree/2.0/server/routes вот один из вариантов. но тут роутов не так и много

Liv
19.06.2018
09:41:21
всем привет, нид хелп. Есть такая странная структура: блог, у которого есть текстовые статьи и фотостатьи. Для текстовых статей сделана модель, в ней есть несколько scope методов. Фотостатьи хранятся в той же таблице, что и текстовые статьи, но отличаются значением поля type. Я отнаследовал модель фотостатей от текстовых статей, но столкнулся с рядом проблем. Например, в модели текстовых статей был scope-метод, возвращающий кол-во активных статей. После унаследования от этой модели фотостатей данный scope-метод, в случае отсутствия активных фотостатей, возвращает не 0, как должен, а пустой объект Builder. Может кто-то помочь с проблемой?

Liv
19.06.2018
09:43:46


все scope - локальные

Maksim (Ellrion)
19.06.2018
09:44:53
как вызываешь у фотостатьи? и версия лары

Liv
19.06.2018
09:45:34
Laravel 5.4 App\Models\PhotoNews::getActiveNewsCount()

Maksim (Ellrion)
19.06.2018
09:46:40
ремарка по неймингу, зачем у тебя в имени скоупа News да и get лишний.

а вот по вопросу странно не должен бы билдер быть.

Liv
19.06.2018
09:47:18
сек, наскриню





dev
19.06.2018
09:53:09
скоуп не должен возвращать число же в том или ином виде

если тебе надо кол-во юзай скоуп+каунт

scopeActiveNews($q){return $q->where('active', 1);} .. PhotoNews...->activeNews()->count();

Maksim (Ellrion)
19.06.2018
09:56:42
ну да скоупы не предназначены идейно для концевых методов. но интересно то что они не предназначены и по коду) всё из-за строки https://github.com/illuminate/database/blob/master/Eloquent/Builder.php#L989

Liv
19.06.2018
10:09:24
хм, любопытно. А можно чуть подробней идею раскрыть, для чего локальные скоупы нужны, а то я, видимо, не совсем правильно их использовал. З.Ы. проблему решил, добавив в родительскую модель статический метод для определения кол-ва активных static

Google
dev
19.06.2018
10:10:45
например популярная новость. ты ее в скопе пишешь и вызываешь где надо получить популярное

рано или поздно вдруг критерии популярности поменяется - ты в одном месте поменял и ок

вместо кучи мест where всякие править

Liv
19.06.2018
10:16:25
ок, спасибо, будем переосмыслять

F01134H
19.06.2018
10:41:56
https://medium.com/@kapivanov93/laravel-service-repository-architecture-4a04777967fd

кто-нибудь мне скажет, в чем смысл

Хотя, в целом, неплохо

Daniel
19.06.2018
10:47:25
у кого-нибудь был опыт обновления Carbon до самой последней версии в laravel 5.6?

Nik
19.06.2018
10:48:24
зачем?

Daniel
19.06.2018
10:49:59
хочу CarbonPeriod

Nik
19.06.2018
10:54:08


@ellrion внезапно, тебя выдало на 2-м месте

Liv
19.06.2018
11:03:50
еще вопрос вдогонку про наследование моделей: если моя PhotoNews наследуется от News, то при создании инстанса PhotoNews я хочу, чтобы у него конкретное поле уже было заполнено нужным значением (type_id = 2), чтобы при сохранении инстанса PhotoNews сохранялись все-таки данные как о фотостатье, а не о текстовой статье (News). Как это правильно делается? Я понимаю, что можно переопределить метод save() или конструктор модели PhotoNews, но какой более правильный подход?

Liv
19.06.2018
11:11:19
public $attributes = ['key' => 'value'];
не нашел в доке про эту фичу, только в акцессорах/мутаторах что-то написано, но не напрямую про это

Виктор
19.06.2018
11:16:12
Кто-нибудь знает, где физически хранится токен паспорта? Bearer + token. В базе найти не могу

Виктор
19.06.2018
11:16:40

Страница 1494 из 2014