2014-10-27 29 views
0

我從我的控制器中的變量返回一個值,但當我在刀片視圖中使用dd($角色)時,會產生不同的結果。Laravel - 行爲行爲。控制器數據和刀片數據

public function index() 
{ 
    $users = $this->user->getAll(); //DBUserRepository 
    $roles = $this->user->getRoles($users) 
    return $roles; 
} 

產量正確的結果

{ 
id: "1", 
username: "Muzikman", 
email: "[email protected]", 
password: "$2y$10$Sp7k9Fs0DwFSYHTpWrTWquFmXJpkiKfRIHsjYtdEXTvbdOJwv9AtG", 
password_confirmation: "", 
confirmation_code: "91f0583ed76c95ebf378648d65d0eac7", 
remember_token: "bGmdTchXtilBj41FIazkFS3PDZzr1tVKmTFnMkeeSoD7wpW6hoQ07A42plle", 
confirmed: "1", 
created_at: "2014-10-19 12:17:55", 
updated_at: "2014-10-20 15:07:01", 
roles: [ 
    { 
    id: "12", 
    name: "Members", 
    created_at: "2014-10-24 20:45:26", 
    updated_at: "2014-10-24 20:45:26", 
    } 
    ] 

然而,當控制器返回$角色刀片它產生不同的結果。

public function index() { $users = $this->user->getAll(); $roles = $this->user->getRoles($users); 
return View::view('admin.index', compact('users'))->withRoles($roles); } 

刀片變種轉儲{{DD($角色)}}返回

array (size=2) 
0 => 
object(User)[254] 
    protected 'connection' => null 
    protected 'table' => null 
    protected 'primaryKey' => string 'id' (length=2) 
    protected 'perPage' => int 15 
    public 'incrementing' => boolean true 
    public 'timestamps' => boolean true 
    protected 'attributes' => 
    array (size=10) 
     'id' => string '1' (length=1) 
     'username' => string 'Muzikman' (length=8) 
     'email' => string '[email protected]' (length=22) 
     'password' => string '$2y$10$Sp7k9Fs0DwFSYHTpWrTWquFmXJpkiKfRIHsjYtdEXTvbdOJwv9AtG'  
     'password_confirmation' => string '' (length=0) 
     'confirmation_code' => string '91f0583ed76c95ebf378648d65d0eac7' (length=32) 
     'remember_token' => string 'bGmdTchXtilBj41FIazkFS3PDZzr1tVKmTFnMkeeSoD7wpW6hoQ07A42plle' (
     'confirmed' => string '1' (length=1) 
     'created_at' => string '2014-10-19 12:17:55' (length=19) 
     'updated_at' => string '2014-10-20 15:07:01' (length=19) 
    protected 'original' => 
    array (size=10) 
     'id' => string '1' (length=1) 
     'username' => string 'Muzikman' (length=8) 
     'email' => string '[email protected]' (length=22) 
     'password' => string '$2y$10$Sp7k9Fs0DwFSYHTpWrTWquFmXJpkiKfRIHsjYtdEXTvbdOJwv9AtG' 
     'password_confirmation' => string '' (length=0) 
     'confirmation_code' => string '91f0583ed76c95ebf378648d65d0eac7' (length=32) 
     'remember_token' => string 'bGmdTchXtilBj41FIazkFS3PDZzr1tVKmTFnMkeeSoD7wpW6hoQ07A42plle' (length=60) 
     'confirmed' => string '1' (length=1) 
     'created_at' => string '2014-10-19 12:17:55' (length=19) 
     'updated_at' => string '2014-10-20 15:07:01' (length=19) 
    protected 'relations' => 
    array (size=1) 

有人能解釋這是怎麼回事?從具有不同陣列內容的控制器發送相同的數據對象到刀片。

這裏是我的界面代碼:

public function getRoles($users) 
{ 

    foreach($users as $user){ 
     $roles[] = \User::with('roles')->find($user->id); 
    } 

    return $roles; 
} 

回答

0

dd($roles)會吐出對象本身,作爲第二組輸出的看到。

{{ $roles }}將要吐出已通過其toJson()函數運行的對象,從而產生您的第一組輸出。

在此代碼

public function index() 
{ 
    $users = $this->user->getAll(); //DBUserRepository 
    $roles = $this->user->getRoles($users) 
    return $roles; 
} 

你沒有放棄它

0

,你返回$角色,我想,當你返回的東西,內容是「JSONable」,laravel將設置適當的頭和轉換內容轉換爲JSON。 (在照亮發現\ HTTP \響應)

而另一個

{{ dd($roles) }} 

它是相同與

<?php var_dump($roles); ?> 

這在PHP說,所述功能顯示結構化關於一個或多個信息包含其類型和值的表達式。

0

我只是好奇。如果你只是通過:: with('roles')函數獲得'roles'列。爲什麼其他信息出現在你的dd()函數結果中?

相關問題