Невозможно передать переменную из контроллера в выпадающий список - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь получить данные из таблицы, называемой решениями, и просмотреть имена решений в раскрывающемся списке в форме, называемой продуктами.

Я создал провайдера с именем DynamicDropdown в App / Providers.

<?php

namespace App\Providers;

use App\Dropdown;
use Illuminate\Support\ServiceProvider;

class DynamicDropdown extends ServiceProvider
{
    public function boot()
    {
        view()->composer('*', function ($view) {
            $view->with('product_array', Dropdown::all());
        });
    }
}

Контроллер

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Providers\DynamicDropdown;
use App\Product;
use Illuminate\Http\Request;

class ProductsController extends Controller
{
    public function index(Request $request)
    {
        $select = [];
        foreach ($view as $data) {
            $select [$data->id] = $data->solutionname;
        }

        return view('products.products', compact('select'));
    }
}

Я вызвал переменную select в представлении, но, к сожалению, я получаю неопределенную ошибку переменной.

лезвие

<div class="form-group <?php echo e($errors->has('solution') ? 'has-error' : ''); ?>">
    <?php echo Form::label('solution', 'Solution', ['class' => 'control-label']); ?>
    <?php echo Form::select('solution', $select, null,
        ('' == 'required') ? ['class' => 'form-control', 'required' => 'required'] : ['class' => 'form-control']); ?>
    <?php echo $errors->first('solution', '<p class="help-block">:message</p>'); ?>
</div>

Сообщение об ошибке ...

ErrorException выбрасывается с сообщением «Неопределенная переменная: выберите (Просмотр: E: \ Laravel \ IBMint \ ресурсы \ вид \ Продукты \ Продукты \ form.blade.php)

Я пробовал много способов исправить это. Но так и не смог найти решение. Цените, если кто-то может помочь.

Спасибо.

1 Ответ

0 голосов
/ 11 ноября 2018

Это потому, что вы на самом деле вызываете переменную $ select в неправильной форме. Вы возвращаете представление

  return view('products.products', compact('select'));

, что означает получить представление products.blade.php в папке products в папке представления. и на основании ошибки вы помещаете переменную $ select в form.blade.php .

Исправлена ​​ошибка, из-за которой вы возвращаете view.blade.php следующим образом.

 return view('products.products.form', compact('select'));
...