Laravel по-русски

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

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

#1 02.06.2016 23:59:24

Вызов несуществующего метода

Всем привет. К примеру есть файл модели 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 в нем поля которые нужно менять и они поменялись. Нужно в многих моделях поменять разные столбцы

Не в сети

#2 03.06.2016 20:11:35

Re: Вызов несуществующего метода

$$value*2

но это небезопасно
${$value}*2 как вариант, но тоже не гуд.
читай статьи о геттерах и сеттерах

Не в сети

#3 03.06.2016 22:01:29

Re: Вызов несуществующего метода

[quote=hzone][code]
$$value*2
[/code]
но это небезопасно
${$value}*2 как вариант, но тоже не гуд.
читай статьи о геттерах и сеттерах[/quote]

там return совсем другой типа такого:

PHP
public function getValueAttribute($value) {
return 
$this->changeValue($value);
}

То есть значение обрабатывается функцией трейта.
Вообщем то мутаторы по принципу геттеров и работают, но конкретно такую ситуацию решить, что бы изменить свойства модели по значениям массива public $fields = [’val1,’val2’,val3’] как то не выходит реализовать.

Не в сети

#4 03.06.2016 22:23:51

Re: Вызов несуществующего метода

мутирующая модель небезопасна.
без опыта проектирования не советую.

Не в сети

#5 03.06.2016 22:25:10

Re: Вызов несуществующего метода

> там return совсем другой типа такого:
ну ко ли просишь чего-то помочь - вбрасывай весь код, а не части с домыслами (

Не в сети

#6 03.06.2016 22:27:54

Re: Вызов несуществующего метода

[quote=hzone]мутирующая модель небезопасна.
без опыта проектирования не советую.[/quote]

Вообщем задача такая: в системе цены хранятся в usd. при регистрации юзер указывает валюту, курсы парсятся каждые 3 часа. Вот если валюта отличная от usd происходит конвертация из usd → выбранная валюта. И почему не безопасно?

Не в сети

#7 04.06.2016 13:11:07

Re: Вызов несуществующего метода

а) конвертированные значения не в usd показываются или хранятся и показываются?
б) потому что

SELECT  FROM users WHERE username = 'vasya' --AND password = 'krtbg'

намёк не понятен, прекращайте вопросы и делайте, как все.
остальным к намёку придираться не стоит, это аналогия, а не конкретный ответ.

Не в сети

#8 04.06.2016 13:18:46

Re: Вызов несуществующего метода

[quote=hzone]а) конвертированные значения не в usd показываются или хранятся и показываются?
б) потому что
[code]
SELECT FROM users WHERE username = ’vasya’ --AND password = ’krtbg’
[/code]
намёк не понятен, прекращайте вопросы и делайте, как все.
остальным к намёку придираться не стоит, это аналогия, а не конкретный ответ.[/quote]

Хранятся в USD. Показываются в выбранной в профиле валюте.

То есть юзер выбрал к примеру евро. Добавляет продукт указывает в евро цену (50 euro) → конвертируется и в бд заносится в usd. На выводе снова EUR

Не в сети

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