在Eloquent laravel 5.2

时间:2016-07-02 15:08:19

标签: php laravel-5 eloquent

我尝试在laravel Eloquent中使用__call魔术方法制作动态方法。 我有博客和blog_translations表,并且必须从blog_translations表加载TITLE,CONTENT。

public function translations($lang = null)
{
    if(empty($lang)) {
        if (!empty(Lang::getLocale())) {
            $language = Lang::getLocale();
        } else {
            $language = Config::get('app.fallback_locale');
        }
    }else{
        $language = $lang;
    }
    return $this->hasMany(Blog_Translation::class)->where('locale', $language);
}

public function __call($method,$arg)
{
    $filed = str_replace('get','',$method);
    if(sizeof($arg) >= 1){
        $lang = $arg[0];
    }else {
        $lang = '';
    }
    return $this->translations($lang)->where('name',$filed)->first()->text;
}
控制器中的

    $blog   = Blog::find(1);
    return $blog->getTITLE();

错误:

  

未定义的属性:   照亮\数据库\雄辩\关系\的hasMany :: $ ID

删除__call函数关系工作正常。

0 个答案:

没有答案