Я пытаюсь получить свой вариант выбора из 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>
Можете ли вы помочь определить проблему? Спасибо
{!! \Form::Label('marque', 'marque:') !!} у вас работает?
Возможный дубликат Форма класса Laravel 5 не найдена
Нет, не работает! Я только что добавил форму в свой config / app.php, и думаю, мне следует запустить и эту команду composer require "laravelcollective/html":"^5.4"
Может это решит вашу проблему stackoverflow.com/questions/28753767/…?
@Mike Я отредактировал свою ошибку: Неопределенная переменная: marqs (вид: C: \ wamp64 \ www \ projetSovac \ resources \ views \ home.blade.php)
compact($marqs) хочет иметь строку, определяющую переменную, которую вы хотите передать в представление. Использование: compact('marqs'), вы также можете комбинировать свои переменные, такие как compact('marqs', 'models', ....etc )



compact($marqs) хочет иметь строку, определяющую переменную, которую вы хотите передать в представление. Использование: compact('marqs'), вы также можете комбинировать свои переменные, такие как compact('marqs', 'models', ....etc )
Также вы возвращаете что-то 2 раза в функции, это невозможно.
Я бы переписал вашу функцию так:
$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
Я не уверен, что вы определили что-либо, но это может упростить выделение кода.
Он жалуется на
{!! Form::Label('marque', 'marque:') !!}. Вы уверены, что форма находится вconfig/app.php=>aliases?