Php 叶片Laravel中的未定义变量
我的控制器中有:Php 叶片Laravel中的未定义变量,php,laravel,Php,Laravel,我的控制器中有: public function detail($id) { $data = DB::table('data_api')->where('id', $id)->get(); $carousel = DB::table('data_carousel')->where('data_api_id', $id)->get(); return view('detail', ['data_api' => $data]); retu
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_api' => $data]);
return view('detail', ['data_carousel' => $carousel]);
}
但是当我试图通过{{$carousel}
回显ing时,它说找不到。但是,$data
工作得很好。有什么想法吗
未定义变量:旋转木马(视图:
/mylaravelproject/resources/views/detail.blade.php)
您返回视图两次,这就是为什么视图中只有
$data\u api
可用的原因
试试这个
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_api' => $data, 'data_carousel' => $carousel]);
}
您需要将双返回语句更改为单返回语句
return view('detail', ['data_api' => $data]);
return view('detail', ['data_carousel' => $carousel]);
到
更新:
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_carousel' => $carousel,'data_api' => $data]);
}
您将从同一控制器返回两个视图。在第一次
返回后
代码的执行被暂停,它将不会返回
第二个视图。这就是您无法获取第二视图参数的原因请将代码替换为以下内容:
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail')->with('data_api', $data)->with('data_carousel', $carousel);
}
您不能从一个函数中返回两次,并期望两次都实际返回某些内容。在第一次
返回后
,停止执行该函数
请尝试同时返回两个变量:
return view('detail', [
'data_api' => $api,
'data_carousel' => $carousel
]);
您需要返回如下所示的视图
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', compact('data','carousel'));
}
现在真的有用吗?你告诉我们你得到了
未定义变量:carousel(视图:/mylaravelproject/resources/views/detail.blade.php)
您将得到这样的结果,因为您没有将变量carousel传递给视图,您将变量命名为data\u api
和data\u carousell
其次,您应该在一句话中以关联数组的形式传递变量,而不是像这样的两个视图调用
return view('detail', ['carousel' => $carousel,'data' => $data]);
就我而言,我使用
@if(isset($users))
在我的演讲之前,我想举个例子:
<div class="form-group" id="boardAdminUserIdCon">
<p><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> مدیر بورد</p>
<select name="boardAdminUserId" id="boardAdminUserId" class="form-control" required="required">
<option value="">{{ __('auth.CHOOSEYOURADMIN') }}...</option>
@if(isset($users))
@foreach($users as $user)
<option value="{{ $user['id'] }}">{{ $user["name"] }}
</option>
@endforeach
@endif
</select>
</div>
مدیبود
{{{{('auth.CHOOSEYOURADMIN')}}。。。
@if(isset(用户))
@foreach($users作为$user)
{{$user[“name”]}
@endforeach
@恩迪夫
尝试{$data_carousel}}
仍然相同,“未定义变量:data_carousel(View:/mylaravelproject/resources/views/detail.blade.php)”用返回视图('detail',['data_api'=>$data,'data_carousel'=>$carousel])解决
和{{$data_carousel}
。谢谢你的回答。我很好奇我使用的return视图和您推荐的compact()
之间的区别(我已经使用过好几次了,但我并不真正理解)。是否有对此的引用?@abaykancompact()
函数从变量及其值创建一个数组。它们的语法如下compact(var1,var2…
<div class="form-group" id="boardAdminUserIdCon">
<p><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> مدیر بورد</p>
<select name="boardAdminUserId" id="boardAdminUserId" class="form-control" required="required">
<option value="">{{ __('auth.CHOOSEYOURADMIN') }}...</option>
@if(isset($users))
@foreach($users as $user)
<option value="{{ $user['id'] }}">{{ $user["name"] }}
</option>
@endforeach
@endif
</select>
</div>