我正在尝试从称为解决方案的表中获取数据,并在名为产品的表单的下拉列表中查看解决方案名称。
我已经在App / Providers中创建了一个名为DynamicDropdown的提供程序。
<?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'));
}
}
我在视图中调用了选择变量,但不幸的是,我收到了一个未定义的变量错误。
刀片
<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 \ resources \ views \ products \ products \ form.blade.php)
我尝试了多种方法来修复它。但是仍然找不到解决方案。感谢有人可以提供帮助。
谢谢。
答案 0 :(得分:0)
这是因为您实际上是在以错误的格式调用$ select变量。您返回视图
return view('products.products', compact('select'));
这意味着在视图文件夹下的产品文件夹中获得视图 products.blade.php 。 然后根据错误将$ select变量放在 form.blade.php 上。
修复后,您将像这样返回视图form.blade.php。
return view('products.products.form', compact('select'));