【问题标题】:Failed to pass result from controller to view in Laravel 5.4无法将结果从控制器传递到 Laravel 5.4 中查看
【发布时间】:2017-02-22 13:50:47
【问题描述】:

我有一个名为 MyClass 的简单类,如下所示:

namespace App\MyDomain;

class MyClass{

    private $msg;

    public function __construct($msg){

        $this->msg = $msg;

    }

    public function saySomething(){

        return $this->msg;

    }
}

我在 Pages 子文件夹下有一个名为 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', 'PageController@getData');

在我的 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 时,我应该点击控制器并将结果返回到我的视图中,然后我应该看到“aloha”这个词,但它只是空的。我在视图中没有看到变量结果。

我也尝试过this link 上的建议,但我认为它不适用于我的版本,或者我只是不知道如何让它发挥作用

我错过了什么吗?提前感谢您的帮助。

【问题讨论】:

  • 您是否尝试在getData() 中输出$results

标签: php laravel


【解决方案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>

感谢你们的 cmets。它给了我提示!

【讨论】:

    【解决方案2】:

    是的,您正在循环单个对象。在您看来,删除foreach 循环并简单地执行。

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

    您的$results 变量包含MyClass 的1 个实例。

    【讨论】:

      【解决方案3】:

      你试图循环对象。 {{ var_dump($results) }} 查看对象。如果你想看消息。 {{ $results-&gt;saySomething() }}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-20
        • 1970-01-01
        • 2019-07-18
        • 1970-01-01
        • 2021-04-09
        相关资源
        最近更新 更多