Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет. К примеру есть файл модели Model.php в нем определим свойство $fields и подключим трейт TrModel;
В трейте вызывается мутатор
[code]
class Model
{
use TrModel;
public $fields = [’val1,’val2’,val3’];
…
}
trait TrModel
{
public function getValueAttribute($value) {
return $value * 2;
}
}
[/code]
Сейчас меняется только свойство value. Можно ли сделать что бы после подключения TrModel, в модели прописал $fileds в нем поля которые нужно менять и они поменялись. Нужно в многих моделях поменять разные столбцы
Не в сети
$$value*2
но это небезопасно
${$value}*2 как вариант, но тоже не гуд.
читай статьи о геттерах и сеттерах
Не в сети
[quote=hzone][code]
$$value*2
[/code]
но это небезопасно
${$value}*2 как вариант, но тоже не гуд.
читай статьи о геттерах и сеттерах[/quote]
там return совсем другой типа такого:
public function getValueAttribute($value) {
return $this->changeValue($value);
}
То есть значение обрабатывается функцией трейта.
Вообщем то мутаторы по принципу геттеров и работают, но конкретно такую ситуацию решить, что бы изменить свойства модели по значениям массива public $fields = [’val1,’val2’,val3’] как то не выходит реализовать.
Не в сети
мутирующая модель небезопасна.
без опыта проектирования не советую.
Не в сети
> там return совсем другой типа такого:
ну ко ли просишь чего-то помочь - вбрасывай весь код, а не части с домыслами (
Не в сети
[quote=hzone]мутирующая модель небезопасна.
без опыта проектирования не советую.[/quote]
Вообщем задача такая: в системе цены хранятся в usd. при регистрации юзер указывает валюту, курсы парсятся каждые 3 часа. Вот если валюта отличная от usd происходит конвертация из usd → выбранная валюта. И почему не безопасно?
Не в сети
а) конвертированные значения не в usd показываются или хранятся и показываются?
б) потому что
SELECT FROM users WHERE username = 'vasya' --AND password = 'krtbg'
намёк не понятен, прекращайте вопросы и делайте, как все.
остальным к намёку придираться не стоит, это аналогия, а не конкретный ответ.
Не в сети
[quote=hzone]а) конвертированные значения не в usd показываются или хранятся и показываются?
б) потому что
[code]
SELECT FROM users WHERE username = ’vasya’ --AND password = ’krtbg’
[/code]
намёк не понятен, прекращайте вопросы и делайте, как все.
остальным к намёку придираться не стоит, это аналогия, а не конкретный ответ.[/quote]
Хранятся в USD. Показываются в выбранной в профиле валюте.
То есть юзер выбрал к примеру евро. Добавляет продукт указывает в евро цену (50 euro) → конвертируется и в бд заносится в usd. На выводе снова EUR
Не в сети
Страницы 1