2017-02-22 123 views
0

我有這樣一個簡單的類叫做MyClass的這樣:無法從控制器傳遞結果,以查看在Laravel 5.4

namespace App\MyDomain; 

class MyClass{ 

    private $msg; 

    public function __construct($msg){ 

     $this->msg = $msg; 

    } 

    public function saySomething(){ 

     return $this->msg; 

    } 
} 

我有下頁稱爲子像testView.blade.php所以一個簡單的測試圖:

<h3>Test View page</h3> 

<p>Content before</p> 

<p>Contents from controller: 

    <ul> 

     @foreach($results as $result) 

      <li>{{$result}}</li> 

     @endforeach 

    </ul> 

</p> 

<p>Content after</p> 

而且下面是我的路線是這樣的:

Route::get('/sandbox', '[email protected]'); 

而在我的PageController,我有像這樣的方法的getData:

public function getData(){ 

    $results = new MyClass('aloha'); 

    // I can see the variable when dumping 
    // dd($results); 

    // but this is not working. it only displays the test view but not the results variable 
    return view('pages.testView',compact('results')); 

    } 

所以,當我打的「沙盒」 URI,我應該打控制器和得到的結果回到我的觀點,然後我看到這個詞「阿羅哈」,但它只是空。我在視圖中看不到變量結果。

我也試過建議上this link但我不認爲它適用於我的版本,或者我只是不知道如何使它工作

有什麼我錯過了什麼?我在這裏先向您的幫助表示感謝。

+0

您是否嘗試在'getData()'中輸出'$ results'? –

回答

0

是的,你正在循環一個對象。在你看來,刪除foreach循環,只需做。

<ul> 
    <li>{{ $result->saySomething() }}</li> 
<ul> 

您的$results變量包含MyClass的1個實例。

+0

是的,很好! –

+0

我解決了它。謝謝你的提示 ;-) – anagnam

1

對不起,我忘了調用我的MyClass的方法,這就是爲什麼它在視圖中不可見。現在

public function getData(){ 

    $obj = new MyClass('aloha'); 

    $result = $obj->saySomething(); 

    return view('pages.testView',compact('result')); 
} 

其工作;-)

<h3>Test View page</h3> 

<p>Content before</p> 

<p>Contents from controller: 

      {{ $result }} 

</p> 

<p>Content after</p> 

感謝球員的意見。它給了我提示!

0

您嘗試循環播放對象。 {{ var_dump($results) }}看到的對象。如果你想看到消息。 {{ $results->saySomething() }}

相關問題