2016-01-06 170 views
0

你好,我是laravel的新手。我試圖建立兩個表之間的關係。在我CONTROLERLaravel雄辯的關係問題

方法

public function show() 
    { 
     $users = users::all(); 
     dd($users->art); 
     die; 
     return View('test')->with('ime'); 
    } 

用戶模型

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use App\Articles; 

class users extends Model 
{ 
    protected $fillable =['name','email','password']; 
    public function setNameAttribute($data) 
    { 
     $this->attributes['name'] = strtolower($data).'Duca'; 
    } 

    public function scopeNametor($query) 
    { 
     $query->where('name','ero'); 
    } 

    public function art() 
    { 
     return $this->hasMany('App\Articles'); 
    } 
} 

文章型號

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Articles extends Model 
{ 
    public function users() 
    { 
     return $this->belongsTo('App\users'); 
    } 
} 

我設置外鍵

user.id to articles.user_id 

我還添加了articles.user_id字段的索引。

,但我得到的錯誤

Undefined property: Illuminate\Database\Eloquent\Collection::$art 

不知何故laravel不承認藝術方法,而是把它當作財產。我做錯了什麼。我嘗試像這樣但沒有運氣

dd($users->art()-get()->toArray()); 

哪裏可能會出現問題。我認爲這可能是容易解決作爲Laravel文檔指出

+0

來讓我們一起resovle –

+0

它似乎我只有一個表用戶的日期 –

+0

不知何故,我在'哪裏...我沒有users_id得到未知列'articles.users_id'字段任何地方 –

回答

0

是的,我發現錯誤,你不能使用$ users = users :: all();它會返回整個集合嘗試這樣的事情$users = users::first();

0

這是正常現象:

一旦關係被定義,我們可以檢索使用雄辯的動態屬性相關記錄。動態屬性允許您訪問關係的功能,好像他們是性質上的模型

Laravel - Eloquent: Relationships

給出的例子定義:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class User extends Model 
{ 
    /** 
    * Get the phone record associated with the user. 
    */ 
    public function phone() 
    { 
     return $this->hasOne('App\Phone'); 
    } 
} 

訪問手機的關係:

$phone = User::find(1)->phone; 
+0

莫名其妙地我得到未知列'articles.users_id'在'其中...我沒有users_id字段任何地方 –

+0

@AleksandraStus你爲你的文章表創建了一個'user_id'字段? 這應該是在你的文章遷移: '$ table-> integer('user_id') - > unsigned();' –

+0

是的,我有db –