首页 > 解决方案 > 如何在 laravel 中定义一个全局变量?

问题描述

我有一张这样的滑块组表,我现在在这个页面上或在地址中。http://localhost:8000/admin/slider-groups

滑块组

当我点击这个+时,它会将我重定向到这个地址,http://localhost:8000/admin/slider-groups/1/sliders或者在这些表格中

滑块

网页.php

Route::resource('admin/slider-groups', 'Admin\SliderGroupController');
Route::prefix('admin/slider-groups/{sliderGroup}')->group(function(){
    Route::resource('admin/sliders', 'Admin\SliderController');
});

SliderGroupController.php

public function index(Request $request)
{
    $sliderGroups = SliderGroup::all();
    return view('admin.groups.index', compact('sliderGroups'));
}

admin.groups.index.blade.php

@foreach($sliderGroups as $sliderGroup)
    ...
    <a href="{{ route('admin::sliders.index',   $sliderGroup->id) }}" class="mr-1">
        <i class="la la-plus text-grey text-shadow-custom font-medium-4 font-weight-normal"></i>
    </a>
@endforeach

SliderController.php

public function edit($sliderGroupId,Slider $slider)
{
    return view('admin.sliders.edit', compact('slider', 'sliderGroupId'));
}

admin.slider.edit.blade.php

<form method="post" action="{{ route('admin::sliders.update', [$sliderGroupId,$slider->id ]) }}" enctype="multipart/form-data">
    @csrf
    @method('PUT')
    ...

SliderController.php

public function update(Request $request, Slider $slider, $sliderGroupId)
{
    dd($sliderGroupId);
}

我得到这个错误。

传递给 Modules\Slider\Http\Controllers\Admin\SliderController::update() 的参数 2 必须是 Modules\Slider\Entities\Slider 的实例,给定字符串,

标签: phplaravel

解决方案


将admin.sliders.edit.blade.phproute中函数的第二个参数更新如下:

<form method="post" action="{{ route('admin::sliders.update', ['slider' => $slider, 'sliderGroupId' => $sliderGroupId]) }}" enctype="multipart/form-data">
    @csrf
    @method('PUT')
    ...

推荐阅读