Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 叶片Laravel中的未定义变量_Php_Laravel - Fatal编程技术网

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()
之间的区别(我已经使用过好几次了,但我并不真正理解)。是否有对此的引用?@abaykan
compact()
函数从变量及其值创建一个数组。它们的语法如下
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>