Php 将变量从控制器传递到视图页面显示未定义的变量

Php 将变量从控制器传递到视图页面显示未定义的变量,php,laravel,laravel-5,Php,Laravel,Laravel 5,我已将变量temp从控制器传递到查看页面。 在调试搜索方法时,我将数据从数据库获取到变量temp。 当我将此变量传递给view页面时,它将错误显示为 ErrorException (E_ERROR) Undefined variable: temp (View: C:\xampp\htdocs\laravel\lsapp\resources\views\pages\MySearch.blade.php) 我怀疑该错误最有可能是由于路由配置造成的,但我不确定。可能还有其他错误。但将变量从控制器

我已将变量
temp
从控制器传递到查看页面。 在调试搜索方法时,我将数据从数据库获取到变量temp。 当我将此变量传递给view页面时,它将错误显示为

 ErrorException (E_ERROR)
Undefined variable: temp (View: C:\xampp\htdocs\laravel\lsapp\resources\views\pages\MySearch.blade.php)
我怀疑该错误最有可能是由于
路由
配置造成的,但我不确定。可能还有其他错误。但将变量从控制器传递到视图页面的过程是相同的,但我也得到了错误

控制器代码块

public function searchDev()
    {
        return view ( 'pages.MySearch');
    }
public function search(Request $request)
{
    $UserName = $request->input('MyName');

    if($UserName != ""){
        $temp = temp::where ( 'NAME', 'LIKE', '%' . $UserName . '%' )->get (['id','NAME','CONTACT','TEMP_ADDRESS']);
        if (count ( $temp ) > 0)
        {
            /*
                getting result from database
                dump($temp);                 
                return response()->json($temp);
                 */
            return view('pages.MySearch', [
                'temp' => $temp
            ]);
        }                
        else
        {
            return view ( 'pages.MySearch')->with('alert-danger', 'Sorry No details found');
        }

    }
}
@foreach($temp as $data)
 <tr>
      <td> {{$data['NAME']}} </td>
     <td> {{$data['CONTACT']}} </td>
     <td> {{$data['TEMP_ADDRESS']}} </td>
</tr>
@endforeach
查看页面代码块

public function searchDev()
    {
        return view ( 'pages.MySearch');
    }
public function search(Request $request)
{
    $UserName = $request->input('MyName');

    if($UserName != ""){
        $temp = temp::where ( 'NAME', 'LIKE', '%' . $UserName . '%' )->get (['id','NAME','CONTACT','TEMP_ADDRESS']);
        if (count ( $temp ) > 0)
        {
            /*
                getting result from database
                dump($temp);                 
                return response()->json($temp);
                 */
            return view('pages.MySearch', [
                'temp' => $temp
            ]);
        }                
        else
        {
            return view ( 'pages.MySearch')->with('alert-danger', 'Sorry No details found');
        }

    }
}
@foreach($temp as $data)
 <tr>
      <td> {{$data['NAME']}} </td>
     <td> {{$data['CONTACT']}} </td>
     <td> {{$data['TEMP_ADDRESS']}} </td>
</tr>
@endforeach

这个错误是一般性的,但我无法调试错误。错误的原因是什么。请帮忙

在else部分中,您没有传递任何变量

所以用这个代替

return view ( 'pages.MySearch', compact('temp'))->with('alert-danger', 'Sorry No details found');
对于刀片:

@foreach($temp作为$data)
{{$data->name}
{{$data->CONTACT}
{{$data->TEMP_ADDRESS}

@endforeach
在else部分中,您没有传递任何变量

所以用这个代替

return view ( 'pages.MySearch', compact('temp'))->with('alert-danger', 'Sorry No details found');
对于刀片:

@foreach($temp作为$data)
{{$data->name}
{{$data->CONTACT}
{{$data->TEMP_ADDRESS}

@endforeach
由于您并不总是将temp变量传递给视图,因此在刀片视图中使用该变量之前,必须检查该变量是否存在。 在刀片服务器中的任何位置使用$temp变量之前,请检查该变量是否存在

@if(isset($temp))
@foreach($temp as $data)
 <tr> 
       <td> {{$data['NAME']}} </td>
       <td> {{$data['CONTACT']}} </td> 
       <td> {{$data['TEMP_ADDRESS']}} </td> 
</tr>
@endforeach
@endif

由于您并不总是将temp变量传递给视图,因此在刀片视图中使用该变量之前,必须检查该变量是否存在。 在刀片服务器中的任何位置使用$temp变量之前,请检查该变量是否存在

@if(isset($temp))
@foreach($temp as $data)
 <tr> 
       <td> {{$data['NAME']}} </td>
       <td> {{$data['CONTACT']}} </td> 
       <td> {{$data['TEMP_ADDRESS']}} </td> 
</tr>
@endforeach
@endif

谢谢它解决了我的问题。我想知道,如果我的问题得到解决,这个代码块会做什么。请回复。非常感谢。如果$temp vaiable已设置且不为空,则此条件为真。只有在$temp存在时才会执行@foreach循环。你可以在这里找到更多的细节。谢谢你的解释谢谢它解决了我的问题。我想知道,如果我的问题得到解决,这个代码块会做什么。请回复。非常感谢。如果$temp vaiable已设置且不为空,则此条件为真。只有在$temp存在时才会执行@foreach循环。你可以在这里找到更多的细节。谢谢你的解释