Viktor
Ребят, подскажите в чем проблема? Есть CRUD контроллер с привязкой к модели. Модель определяет, а вот элемент из БД не берет, хотя в базе запись есть. Пробовал заново создавать контроллер, эффект тот же
Bekbolot
In eloquent model: /** @var array The default values of attributes */ protected $attributes = [ 'avatar' => null, 'about' => '', ];
I have read the documentation and did so protected static function boot(){ global $_user; parent::boot(); static::creating(function($query){ if (!isset($query->user)) $query->user = $_user->id; $query->time = SERVER_TIME; }); } but it didn't work me
Maksim (Ellrion)
< global $_user;
MAGI
Нет, это плохой путь!
можно чуть подробнее, если не трудно?
Bekbolot
class AppServiceProvider extends ServiceProvider { public function boot(){ global $_user; Chat::creating(function($query){ if (!isset($query->user)) $query->user = $_user->id; $query->time = SERVER_TIME; }); } public function register(){ } } it didn't work too
Dmitriy
< global $_user;
зато удобно. хД
Maksim
is there no way to set default value specially to create?
You can make this by next ways: 1) When you create new instance of model set attribuetes directly, like this: $modelInstance->atrtibute = $value; (for me is better way, because i use IDE and can find usages of fields in poject) 2) Load attributes to models. 3) Listen events and modify fields in listener.
Bekbolot
can you help me pls
Maksim
можно чуть подробнее, если не трудно?
Хранилище не должно содержать логики! Значение по умолчанию, тоже логика и когда-нибудь, оно выстрелит тебе в ногу.
Samat
I need to make listener for adding
регаешь обсерву [ModelName]Observer.php. функция public function saving(ModelName $model) но обсерверы - это зло
Anton
Почему зло?
Samat
так что код в 0 строчек и без мозго*бства - дефолтное значение поля 😏
Maksim
Для данной задачи - оверинженеринг какой-то.
Samat
is it for only save method or save and create both?
проверь на наличие id внутри функции
MAGI
haha sometimes boring..
зачем ты пишешь по-английски, если у тебя русский ник?)
Maksim
is it for only save method or save and create both?
RTFM :) https://laravel.com/docs/5.6/eloquent#events
Maksim
зачем ты пишешь по-английски, если у тебя русский ник?)
Может у него клава английска, а сам он не русский и не помнит по памяти, где клавиши на раскладке.
Maksim (Ellrion)
prost
Bekbolot
а, лол. есть creating))
creating and saving what is the differece between these?
Bekbolot
please, explain me
Bekbolot
потому что русский нечитаемый
+++ so we are programmers and programmers always use english :)
Maksim
creating and saving what is the differece between these?
Creating will be dispatched when model saved first times, but saving will be dispatched always on save.
Maksim (Ellrion)
+++ so we are programmers and programmers always use english :)
лучше быть программером который не знает английский но не писать global в модели, чем таким филологом)
Anton
А никто не пробовал RoutingServiceProvider переопределить?
Anton
ну чтобы свой
Anton
просто он относится к коре сервисам и он хардкорно вызвается и переопределить его не получается
Anton
В ядро лезть не хочется
Anton
там чисто наша фигня...
Maksim
Я просто на Lumen сижу, так что тут всё топорнее с роутами =)
Bekbolot
guys it is not working :( public static function creating($query){ if (!isset($query->user)) $query->user = $_user->id; $query->time = SERVER_TIME; }
Maksim
I am not using laravel, I just use eloquent, so..
Using global is very very very very very bad practice!
Samat
Почему зло?
неявное изменение модели. ладно логи, уведомления. но изменять поведение данных модели в обсервере - это какой-то непаттерновый подход
Maksim
Сказал как отрезал :)
Anton
ну такое на самом деле. надо просто с умом юзать
Maksim
> $query->time = SERVER_TIME; OMG
Bekbolot
параметр не запрос, а модель
да да там просто написал $query да он есть модел но не работает почему
Anton
в симфони примерно так же подписка на события доктрины
Bekbolot
> $query->time = SERVER_TIME; OMG
🙄что то не так?
Anton
только там лисенеры и сабскрайберы
Anton
блин не тебе отвечал
Maksim
Кек, чому? Бложик пилить норм же.
Maksim (Ellrion)
доктрина - дно (вот и поговорили)
Anton
mysql дно
Maksim
доктрина - дно (вот и поговорили)
Я медленно достаю mysql_query...
Maksim (Ellrion)
в пет проджекте)
Anton
а что не отстой?
Maksim
а что не отстой?
На заводе гайки крутить :)
Samat
доктрина - дно (вот и поговорили)
в ларе можно доктрину юзать?
Maksim
Глупцы, вы ещё не поняли? Адель тему говорит, всё отстой =)
Maksim
Б-Г терпел и нам велел, да?)
Anton
да какой то скучный аргумент. тогда уж весь мир гавно
Anton
а жрать все равно надо каждый день
Anton
перфекционизмом надо переболеть и идти дальше