2017-05-29 82 views
0

我是Laravel 5.4的新成員,目前正在致力於Laravel的小型項目。根據我的客戶要求,我用CamelCase標準重新命名了一些與Laravel命名約定相反的表。訪問者不在Laravel工作5.4

例如,我的表「A」具有列「狀態」和「名字」而不是「狀態」和「名字」。

現在,我使用的訪問模型文件通過創建函數給出修改這些列的值如下:

public function getStatusAttribute($val) { 
    reutrn $val . ' Status'; 
} 

public function getFirstNameAttribute($val) { 
    return 'User is '.$val; 
} 

當我取回使用elequent處理數據,然後系統將返回這些空白的價值。

如果我根據「Laravel命名約定」重命名列名,那麼它會給我正確的結果。

我不知道這裏確切的問題是什麼。請任何人都可以分享您的解決方案來解決此問題?

+0

這篇文章對您有幫助嗎? https://laracasts.com/discuss/channels/eloquent/column-alias-definitions – kerrin

回答

1

直接訪問字段。

public function getStatusAttribute() 
{ 
    return $this->Status . ' Status'; 
} 

public function getFirstNameAttribute() 
{ 
    return 'User is ' . $this->FirstName; 
} 

將此添加到模型中,每次都附加這些字段。

protected $appends = [ 
    'status', 'first_name', 
]; 
+0

嗨。問題是這些函數不是由laravel調用的。 – Dhirender

+0

@Dhirender更新了我的答案。您需要爲laravel設置'$ appends'屬性,以便在每個結果中自動添加這些字段。 – Sandeesh