2017-08-27 117 views
2

感謝這裏的任何幫助。即時通訊新的laravel,並想了解我如何出錯,所以我可以改善。Laravel - 陣列輸出問題

所以即時嘗試從一個數據庫搜索輸出傳遞它從控制器使用緊湊,然後將其傳遞給自定義刀片助手。

當我越過分貝細節我得說,用戶ID的價值,這可以用

    @foreach($SelectUser as $key => $UserArray) 

         {{$UserArray->user_id}} 

        @endforeach 

顯示我會得到一個輸出爲預期的用戶ID例如1

時我嘗試將此與我的幫助器結合,將值更改爲可讀的用戶名,它不會縫合以輸出幫助器類的值以轉換爲可讀用戶名。

     @foreach($selectUseras $key => $UserArray) 

         @FindUsername($UserArray->user_id) 

        @endforeach 

輔助類是

public function boot() 
{ 

    //A Helper to translate a user id number in to a readable username 

    Blade::directive('FindUsername', function ($id) { 

     // Request infomation from the db useing eloquent 
     $username = User::where('id', $id) 
        ->pluck('username'); 

     //Results to an array 
     $arr = $username->toArray(); 

     //Filter through array results 
     $i = implode(" ",$arr); 

     return $i; 

    }); 

} 

回答

1

刀片指令應該返回不是真正的價值,但一些PHP代碼。您應該將指令更改爲:

//Filter through array results 
$i = implode(" ",$arr); 

// return php-code which echo'es you value 
return "<?php echo $i;?>"; 
+0

謝謝我同意他們應該是一些PHP代碼,這是他們,我只是嘗試修復,而不是把它放回去了。但仍然沒有通過任何價值。 – ItsLewis

+0

您是否調試過指令代碼?如果你返回一個像「echo」這樣的值而不是'$ i'的值?這是否工作? –

0

您需要打印的值,而不是返回。 當刀片文件將被編譯和刀片指令將得到解決,然後像一個PHP文件做它只會顯示打印值,

爲前:如果你寫$的PHP文件I = 1 ;,那麼它將不會在瀏覽器中編譯時顯示,它只會在您執行時顯示echo $i;

所以,你需要回到這個

return "<?php echo $i;?>"; 

不要忘了運行php artisan view:clear,您需要在更新指令之前清除您的編譯視圖。

+0

謝謝我同意他們應該是一些PHP代碼,這是他們,我只是嘗試修復,而不是把它放回去了。但仍然沒有通過任何價值。因爲它沒有返回「<?php echo $ i;?>」; – ItsLewis

+1

@ItsLewis您是否運行了此命令將刪除緩存的視圖。 'php artisan view:clear',這可能是其中一個原因,因爲視圖已經被緩存了,它沒有采用這個新的指令? – Vikash