我正试图从不是默认连接的3个数据库中检索我的选择选项。
但我遇到错误:未定义的变量:marqs(视图:C:\ wamp64 \ www \ projetSovac \ resources \ views \ home.blade.php)
这是我的控制器代码
public function index()
{
$marques= DB::connection('sqlsrv2')->table('marque')->get();
$modeles = DB::connection('sqlsrv2')->table('Modele')->select( DB::raw('CodeModele'))->get();
$finitions = DB::connection('sqlsrv2')->table('finition')->select( DB::raw('CodeFinition'))->get();
$marqs = $marques->all(['marque']);
$models = $modeles->all(['CodeModele']);
$Finitions = $finitions->all(['CodeModele']);
return View::make('home')
->with(compact($marqs))
->with(compact($models))
->with(compact($Finitions));
return View('home');
}
和我的home.blade.php代码
<tr class="filters">
<th><input type="text" class="form-control daterangepicker-field" placeholder="Période d'analyse" disabled ></th>
<th><select class="form-control " disabled>
{!! Form::Label('marque', 'marque:') !!}
@foreach($marqs as $marque)
<option value="{{$marque->codeMarque}}">{{$marque->codeMarque}}</option>
@endforeach
</select>
</th>
您可以帮助确定问题吗? 谢谢
答案 0 :(得分:1)
compact($marqs)
要有一个字符串,将要传递给视图的变量分开。使用:compact('marqs')
,您还可以组合变量,例如compact('marqs', 'models', ....etc )
此外,您现在在函数中返回了两次,这是不可能的。
我会这样重写您的函数:
$marques= DB::connection('sqlsrv2')->table('marque')->get();
$modeles = DB::connection('sqlsrv2')->table('Modele')->select( DB::raw('CodeModele'))->get();
$finitions = DB::connection('sqlsrv2')->table('finition')->select( DB::raw('CodeFinition'))->get();
$marqs = $marques->all(['marque']);
$models = $modeles->all(['CodeModele']);
$Finitions = $finitions->all(['CodeModele']);
return View::make('home')->with(compact('marqs', 'models', 'Finitions'));
假设前6行为您提供的实际数据只是返回值。
您可能想阅读有关如何使用laravel模型的信息 https://laravel.com/docs/5.7/eloquent
我不确定您是否定义了任何定义,但这会使您的代码分配更加简单。