
henri
20.10.2018
22:48:45
вот че выводится по итогу
сверху справа должно быть не 8, а никнейм

Google

Oleg ?
20.10.2018
23:25:05
Привет котаны
Есть две модели
Дискуссия и ответы к ней
Дискуссия связана с ответами
public function answer()
{
return $this->hasMany('App\Models\DiscussionsAnswers', 'discussions_id', 'id');
}
ответы с дискуссией
public function discussion()
{
return $this->belongsTo('App\Models\Discussions');
}
Я пытаюсь создавать ответ через связь
$this->discus->where('id', $TopicID)->answer()->create([
'user_id' => Auth::user()->id,
'ip' => $IP,
'status' => 1,
'text' => $Text,
]);
Чтобы работал touch
А меня ругает
Call to undefined method Illuminate\Database\Eloquent\Builder::answer()
Где я не прав?

Vladimir
20.10.2018
23:30:50
после where first

Google

Oleg ?
20.10.2018
23:32:54
о, да, спасибо
второй вопрос теперь
в модели Ответы
protected $touches = ['discussion'];
public function discussion()
{
return $this->belongsTo('App\Models\Discussions');
}
Но модель Дискуссии апдейт_тайм не обновляется
Почему?

Vladimir
20.10.2018
23:34:36
судя по доке только при изменении модели Ответы
не при создании

Oleg ?
20.10.2018
23:34:56
блин +_+
а как делать тоуч тогда?

Vladimir
20.10.2018
23:35:07
вручную?
или повесить обзервер на модель

Oleg ?
20.10.2018
23:35:19
до этого у мня тупо поле crunch было и я там 1 апдейтил

Vladimir
20.10.2018
23:35:21
и там обновлять

Oleg ?
20.10.2018
23:36:09

Vladimir
20.10.2018
23:36:25
https://laravel.com/docs/5.7/eloquent#observers

Oleg ?
20.10.2018
23:36:51
?
А можно ещё вопрос? А можно тогда через touch() как-то делать, чтобы не городить огород?
Я не разобрался как вручную метод активировать просто.

Vladimir
20.10.2018
23:40:05
Можно. В обзервере и делай

Google

Artur
21.10.2018
05:50:56

Oleg ?
21.10.2018
06:08:56
Меня интересует вызов метода отдельно ещё.

Ахмедов
21.10.2018
06:54:57

Евгений
21.10.2018
07:00:09
цены у разных цветов могут отличаться?

Ахмедов
21.10.2018
07:01:13
нет не будут отличаться

Илья
21.10.2018
07:47:43
many to many?

Sergey
21.10.2018
07:48:08
Создаешь модель Color, таблицу colors и color_product, между моделями Product и Color отношения many to many.
При фильтрации делаешь запрос с whereHas('color', function($query) use ($request) {$query->where('name', $request->name )})
Но, как мне кажется, лучше будет сделать офферы, и связь будет не с Product, а с офером. У продукта к оферу отношение one to many, а уже у оферов, например, по EAV будет и Color, и я вижу у вас там Quantity, и если нужно будет, то и другие опции...

Сергей
21.10.2018
08:17:03
Как сгенерировать route по его имени но с указанным ему доменом?
По умолчанию хелпер route('name') возвращает путь в текущем домене запроса
то есть подтягивает данные из $request
Пока единственное, что придумал - route('name', [], false) - сгенерировать относительный путь и подставить ему нужный домен

ivan
21.10.2018
11:14:52
Насколько правильно наследовать таблицы базы данных?
В родительской:имя, фамилия, почта, телефон, пароль. В дочерних - другие поля + ссылка на родительскую 1к1?

Maxim
21.10.2018
11:16:17

dєєp ín
21.10.2018
11:17:35

ivan
21.10.2018
11:18:55

dєєp ín
21.10.2018
11:22:22
На практике непонятно как с этим работается. Но в mysql целый раздел с функциями для работы с json данными
Ссылка на документацию там же

Google

ivan
21.10.2018
11:26:27
Я сделал с наследование, но теперь сомневаюсь, что это правильно. Во всяком случае, теперь стало сложнее.
Сложность появилась при создании, изменении пользователя. А именно, как дотягиваться до полей родительской таблицы. Приходится постоянно джоинить что то. Возможно, придется перейти на носкуль.
Перейти на носкуль потом- это 2 сложность.
Придется переписать без наследования. Меньше сложностей

dєєp ín
21.10.2018
11:32:28

Maxim
21.10.2018
11:32:38

ivan
21.10.2018
11:33:05

Maxim
21.10.2018
11:33:57
Подскажи?
select ... from ‘users’, ‘rows’ where ‘users’.id = ‘rows’.user_id
Простой пример

dєєp ín
21.10.2018
11:34:51
Подскажи?
Связи. Ты получаешь родителя и указываешь связь. После может сделать что-то типа user->relation->country = data. И сохранить связь.
Не знаю сохраняется ли если вызывать только user->save

Bogdan
21.10.2018
11:45:35


ivan
21.10.2018
11:46:26
Связи. Ты получаешь родителя и указываешь связь. После может сделать что-то типа user->relation->country = data. И сохранить связь.
При таком подходе, за все отвечает модель/контролёр юзера.
В них нужно писать доп проверки: кого регистрировать, пользователя или админа или продавца или медведя.
Если взваливать регистрацию на каждого из этих ребят, то получится такое:
Надо зарегистрировать медведя. Надо вывести поля таблицы юзер(имя, фамилия, пароль и тд) и поля для медведя + отношения для user и отношения для медведя. Он отправил форму. в реквестах валидация наследуются от юзера + валидация медведя. Потом надо распихать в данные в таблицы. Часть данных запихать в юзера, часть в медведя, часть в отношения(не обязательно). Что бы это сделать, надо понять, а какие поля для юзера, какие для медведя. Жёстко привязывается к столбцам таблицы. Плюс дотягиваться не красиво(репозитория нет).
Нужно добавить новые поля? Лезь в код, ищи там.
Я ещё не писал про поиск, поиск по нескольким полям, сортировку, фильтры, пагинцаю?
Если я ошибаюсь, поправьте. Но пока готов избавится от наследования таблиц.


Egin
21.10.2018
11:47:29
При таком подходе, за все отвечает модель/контролёр юзера.
В них нужно писать доп проверки: кого регистрировать, пользователя или админа или продавца или медведя.
Если взваливать регистрацию на каждого из этих ребят, то получится такое:
Надо зарегистрировать медведя. Надо вывести поля таблицы юзер(имя, фамилия, пароль и тд) и поля для медведя + отношения для user и отношения для медведя. Он отправил форму. в реквестах валидация наследуются от юзера + валидация медведя. Потом надо распихать в данные в таблицы. Часть данных запихать в юзера, часть в медведя, часть в отношения(не обязательно). Что бы это сделать, надо понять, а какие поля для юзера, какие для медведя. Жёстко привязывается к столбцам таблицы. Плюс дотягиваться не красиво(репозитория нет).
Нужно добавить новые поля? Лезь в код, ищи там.
Я ещё не писал про поиск, поиск по нескольким полям, сортировку, фильтры, пагинцаю?
Если я ошибаюсь, поправьте. Но пока готов избавится от наследования таблиц.
Что мешает почитать доки по отношениям в ларе?


ivan
21.10.2018
11:47:47

Egin
21.10.2018
11:47:49
Поиск по связям через whereHas

Евгений
21.10.2018
11:48:01

ivan
21.10.2018
11:48:05

Egin
21.10.2018
11:48:22
Потом не составляет вовсе сложностей

ivan
21.10.2018
11:48:51
Вы сами что используете? Один использует json в мускуле. Я понял. Остальные как делают?

Евгений
21.10.2018
11:49:48
Связями

Google

Egin
21.10.2018
11:50:00

Евгений
21.10.2018
11:50:04
Вообще по ситуации, от полей зависит


dєєp ín
21.10.2018
11:50:44
При таком подходе, за все отвечает модель/контролёр юзера.
В них нужно писать доп проверки: кого регистрировать, пользователя или админа или продавца или медведя.
Если взваливать регистрацию на каждого из этих ребят, то получится такое:
Надо зарегистрировать медведя. Надо вывести поля таблицы юзер(имя, фамилия, пароль и тд) и поля для медведя + отношения для user и отношения для медведя. Он отправил форму. в реквестах валидация наследуются от юзера + валидация медведя. Потом надо распихать в данные в таблицы. Часть данных запихать в юзера, часть в медведя, часть в отношения(не обязательно). Что бы это сделать, надо понять, а какие поля для юзера, какие для медведя. Жёстко привязывается к столбцам таблицы. Плюс дотягиваться не красиво(репозитория нет).
Нужно добавить новые поля? Лезь в код, ищи там.
Я ещё не писал про поиск, поиск по нескольким полям, сортировку, фильтры, пагинцаю?
Если я ошибаюсь, поправьте. Но пока готов избавится от наследования таблиц.
Не вижу никакой проблемы. С Orm ларавеля работать с базой одно удовольствие. И да + к сообщению где советуют ознакомится с разделом отношений в ларке.


ivan
21.10.2018
11:50:46
Я делал и так и так и так. С текущей реализацией у меня сложности. Возможно, я не правильно делаю. Поэтому ищу ответы компетентных. А вы отправляете доки читать по wherehas.

Egin
21.10.2018
11:51:02
В обычных запросах использую join

dєєp ín
21.10.2018
11:51:44

ivan
21.10.2018
11:52:54

Egin
21.10.2018
11:53:49
Покажи пример твоих двух таблиц

dєєp ín
21.10.2018
11:54:48

Egin
21.10.2018
11:54:55
На двух проектах реализованы два различных типов юзерей (например, для физических и юридических лиц)
Правильно спроектировать бд это целая наука
В итоге у меня таблица с общими данными и две под отдельные поля для разных типов

ivan
21.10.2018
11:59:11
Они сейчас простые:
User:
Namme,sername,phone, password...
Customer:
Search_query_count, active, user_id...
Staff:
Position_id, fired, user _id...
Дальше появятся новые сущности. Настройки к этими сущностям( опять же 1к1)

Egin
21.10.2018
11:59:17
Человек хочет сделать правильно
+