【问题标题】:laravel, display data on a drop down from another tablelaravel,在另一个表的下拉列表中显示数据
【发布时间】:2018-04-07 06:37:41
【问题描述】:

大家好,我有一张表ma​​nufacturers(列'manufacturer_id'、'manufacturer' ) 并希望在不同但链接的视图 'asset.blade.php' 中动态显示基于此表的“选择”列表。

模型 - Asset.php

namespace App;

class Asset extends Model
{
    protected $primaryKey = 'asset_id';

}

控制器 - AssetController

namespace App\Http\Controllers;

use App\Asset;
use App\Manufacturer;

use Illuminate\Http\Request;

class AssetController extends Controller
{
    public function asset(){

        $assets = Asset::all();
        return view('viewAsset', ['assets' => $assets]);
    }

    public function getmanufacturerlist() {
        $Manufacturer = Manafacturers::all();
        return view('manufacturer')->with('data', $Manufacturer);
    }

    public function add(Request $request){
        $this->validate($request, [
            'asset_id' => '',
            'asset_category_id' => 'required',
            'manufacturer_id' => 'required',
            'department_id' => 'required',
        ]);
        $assets =  new Asset;
        $assets  ->asset_id  = $request->input('asset_id');
        $assets  ->asset_category_id = $request->input('asset_category_id');
        $assets  ->manufacturer_id = $request->input('manufacturer_id');
        $assets  ->department_id = $request->input('department_id');
        $assets  ->save();
        return redirect('/viewAsset') ->with('info', 'New Asset Saved Successfully!');
    }
}

manufacturer.blade.php

<select name="manufacturer_id">
<option>Select a Manufacturer</option>
@foreach( $manufacturer as $manufacturers )
<option value=" <?php echo $manufacturers->manufacturer_id; ?>" > <?php echo $manufacturer->manufacturer?> </option>
 @endforeach
</select>

当我执行我的项目时——它工作得很好,我看到了下拉列表。但如果我在表格中包含我的manufacturer.blade.php:

 @include('forms.manufacturer')

我得到了错误

Undefined variable: manufacturer.

如何修复错误?我的 Laravel 版本是 5.4。

【问题讨论】:

  • 来自文档Including Sub-Views 所有可用于父视图的变量都将可用于包含的视图。如果您正在加载子视图@include('forms.manufacturer'),则需要从控制器传递$manufacturer
  • 谢谢。它有效@ljubadr
  • 不客气

标签: php laravel laravel-blade


【解决方案1】:

您将$manufacturer 作为$data 传递给您的视图。

更新它以正确传递名为 $manufacturer 的变量。

return view('manufacturer')->with('manufacturer', $Manufacturer);

或者使用 compact 来获得更简洁的方法:

return view('manufacturer', compact('manufacturer'));

【讨论】:

  • 我确实尝试将其更新为 $manufacturer 并且我使用了紧凑的方法,但错误仍然保持不变。 @enriqg9
  • @Nii 在您的控制器上尝试 return view('manufacturer')-&gt;with('data', $Manufacturer); 并在您的视图上更新此行 @foreach( $data as $manufacturers ) 并让我知道会发生什么
  • 错误信息切换到:未定义变量:数据@enriqg9
猜你喜欢
  • 2021-10-19
  • 2021-10-16
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多