2016-10-14 4 views
0

У меня есть модель Laravel с простой функцией в ней. Но по какой-то причине, я получаю эту ошибку:Функция Laravel в модели

Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation

Вот моя модель:

class Dish extends Model 
{ 
    public function sum() { 
     return $this->attributes['begin'] + 10; 
    } 
} 

В мой контроллер я:

$model->sum(); 

Каждый знает, как я могу добавить функцию моя модель?

Большое спасибо заранее!

+0

где $ this point to? –

+0

Вы уверены, что ошибка для этой строки кода? –

+0

Вы пытаетесь загрузить это как отношения? Как '$ model = Dish :: with ('sum') -> где ('id', 3) -> first();' или что-то еще? – SimonDepelchin

ответ

0

Если расчет будет выполнен с данными модели, вам не нужно использовать $this->attributes, чтобы получить данные модели, так как это фактически делает его более «грязным». чистый способ это будет как упоминание в комментариях:

public function sumBegin($default = 10) 
{ 
    return $this->begin + $default; 
} 

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

Смежные вопросы