2017-02-22 125 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() }}

相关问题