Как получить выбранные параметры из моей базы данных

Я пытаюсь получить свой вариант выбора из 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:') !!}. Вы уверены, что форма находится в config/app.php => aliases?

Mike 14.01.2019 15:06

{!! \Form::Label('marque', 'marque:') !!} у вас работает?

Mike 14.01.2019 15:12

Возможный дубликат Форма класса Laravel 5 не найдена

Mike 14.01.2019 15:15

Нет, не работает! Я только что добавил форму в свой config / app.php, и думаю, мне следует запустить и эту команду composer require "laravelcollective/html":"^5.4"

M_M 14.01.2019 15:15

Может это решит вашу проблему stackoverflow.com/questions/28753767/…?

Mike 14.01.2019 15:16

@Mike Я отредактировал свою ошибку: Неопределенная переменная: marqs (вид: C: \ wamp64 \ www \ projetSovac \ resources \ views \ home.blade.php)

M_M 14.01.2019 15:57
compact($marqs) хочет иметь строку, определяющую переменную, которую вы хотите передать в представление. Использование: compact('marqs'), вы также можете комбинировать свои переменные, такие как compact('marqs', 'models', ....etc )
Mike 14.01.2019 16:01
JS - События опций формы
JS - События опций формы
В продолжение предыдущей статьи CSS - стили, связанные с вводом формы , в этой статье мы будем использовать JS для взаимодействия с формами, на этот...
CSS - Стили, связанные с вводом формы
CSS - Стили, связанные с вводом формы
Общими стилями ввода для форм являются Input (включая Text, Radio, checkbox), Select и Textarea, из которых Input относительно прост, поэтому в этой...
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Наличие на корпоративном сайте форм заявлений о приеме на работу, или "трудовых анкет", экономит время и деньги как для соискателей, так и для...
0
7
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Я не уверен, что вы определили что-либо, но это может упростить выделение кода.

Другие вопросы по теме