在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量

Posted

技术标签:

【中文标题】在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量【英文标题】:Passing data controller to view getting undefined variable, in Laravel 5.1 【发布时间】:2016-10-09 23:33:42 【问题描述】:

我想将数据从控制器传递给视图

$participantView = view('section.participant', ['data' => $result['data']])->render();

$result['data'] 是数组数据(非空)

我在视图中做foreach,并得到:

未定义变量:数据

我也使用 compact 和 'with',但也会得到未定义的变量

我的代码有什么问题?

【问题讨论】:

试试:return view('section.participant', ['data' => $result['data']]); 你想对视图做什么?为什么渲染()?为什么不直接返回这样的视图:return view('section.participant')->with('data', $result['data']); 是的,我想将数据传递给查看。然后我将返回 $data。也就是 $data=['data_array'=>['view'=>$participantView]]; 【参考方案1】:

你必须返回视图,试试这个:

return view('section.participant', ['data' => $result['data']]);

【讨论】:

【参考方案2】:

尝试使用

 $data = $result['data'];
 return view('section.participant', compact('data'));

它会起作用的。

【讨论】:

我将返回 $data, $data=['data_array' => ['view' => $participantView ]];那我会回到ajax。【参考方案3】:

试试这个:

$participantView = view('section.participant')->with([
    'data' => $result['data']
])->render();

在视图中您将有可用的 $data 变量。

【讨论】:

还是一样,仍然得到未定义的变量数据。我不明白出了什么问题,因为在其他起作用的功能中 还是一样。或者我的代码有错误的方法?我从视图加载js函数,js函数调用ajax到控制器,然后在控制器中将数据传递给视图。从控制器,这会将视图返回到 ajax。有错吗? 看来你的问题就在那里。您正在返回视图内容、字符串,而不是视图对象。那样做是行不通的。 也许这会有所帮助***.com/questions/28634712/… 但是,出于某种原因。在其他功能(使用相同的功能)中工作 XD。【参考方案4】:

我想将数据传递给查看,然后我会返回$data。即:

$data=['data_array' => ['view' => $participantView ]];

在另一个函数中,传递的数据很好。

【讨论】:

以上是关于在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从控制器传递到 laravel 中查看?

如何传递数据以在 Laravel 中查看?

Laravel 5.1 索引和创建授权

在laravel中查看路由动态数据数组

无法在控制器 Laravel 5.1 中检索通过 ajax 发送的数据

在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由