Laravel Model函数使用关系

时间:2016-11-17 14:38:31

标签: php laravel

我在总结时间内总结了这个功能

<?php 

     $sum = [];
     foreach($user->workedTimes as $item){
        array_push($sum, ($item->end_time->diffInHours($item->start_time))); 
     }
     echo array_sum($sum);

?>

在刀片视图中一切都很好,但我想在我的模型中使用相同的代码,因此我可以在刀片中调用user-&gt; totalHours

我在我的模型中实现了这个功能:

enter image description here

当我拨打{{$ user-&gt; totalHours}}

我收到此错误:

enter image description here

如何从Model?

开始这项工作

2 个答案:

答案 0 :(得分:1)

您应该使用带括号的方法:

{{ $user->totalHours() }}

但如果你像这样使用Laravel Accessor会很好:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function getTotalTimeAttribute()
    {
       // Your logic here ...
       $sum = [];
       foreach($this->workedTimes as $item) {
         array_push($sum, $item->end_time->diffInHours($item->start_time));
       }
       return array_sum($sum);
    }
}

并在刀片中访问它,如下所示:

{{ $user->total_time }}

希望这有帮助!

答案 1 :(得分:0)

尝试使用$this->workedHours()并使用$user->totalHours()

进行调用