Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔5.5Controller@destroy迪元';t注入模型_Laravel_Dependency Injection_Laravel 5.5 - Fatal编程技术网

Laravel 拉威尔5.5Controller@destroy迪元';t注入模型

Laravel 拉威尔5.5Controller@destroy迪元';t注入模型,laravel,dependency-injection,laravel-5.5,Laravel,Dependency Injection,Laravel 5.5,我有以下销毁方法的资源控制器: public function destroy(ClinicImage $clinicImage) { $clinicImage->delete(); return redirect()->back()->with('success', 'Изображение удалено'); } 此外,我还有以下几行网格: <td> <div class="btn-group btn-group">

我有以下销毁方法的资源控制器:

public function destroy(ClinicImage $clinicImage)
{
    $clinicImage->delete();

    return redirect()->back()->with('success', 'Изображение удалено');
}
此外,我还有以下几行网格:

<td>
    <div class="btn-group btn-group">
        <button type="button" data-url="{{route('admin.clinic-image.destroy', [$clinic->id, $image->id])}}" class="btn btn-danger">
            <i class="fa fa-remove fa-fw"></i>
        </button>
    </div>
</td>
当我将表单发送到
/admin/clinic/1/clinic image/1
时,出现以下错误:
类型错误:传递给App\Http\Controllers\Admin\ClinicImageController::destroy()的参数1必须是App\ClinicImage的实例,字符串给定

控制器路由。

所以我的问题是:为什么DI不能识别我的路线和型号id?

试试这个:

public function destroy($clinic, $clinicImage)
{
    $clinicImage = ClinicImage::where('id', $clinic)->where('image', $clinicImage); //I'm guessing the name of the columns.
    $clinicImage->delete();

    return redirect()->back()->with('success', 'Изображение удалено');
}
试试这个:

public function destroy($clinic, $clinicImage)
{
    $clinicImage = ClinicImage::where('id', $clinic)->where('image', $clinicImage); //I'm guessing the name of the columns.
    $clinicImage->delete();

    return redirect()->back()->with('success', 'Изображение удалено');
}

实际上,您在控制器中使用了错误的参数名称

更改控制器中的签名

将其更改为
$clinic\u image

选项1:更改控制器

public function destroy(ClinicImage $clinic_image) //$clinicImage to $clinic_image
{
    $clinicImage->delete();

    return redirect()->back()->with('success', 'Изображение удалено');
}
选项2: 更改路由文件中的参数:

Route::delete('/admin/clinic/{clinic}/clinic-image/{clinicImage})->name('');

实际上,您在控制器中使用了错误的参数名称

更改控制器中的签名

将其更改为
$clinic\u image

选项1:更改控制器

public function destroy(ClinicImage $clinic_image) //$clinicImage to $clinic_image
{
    $clinicImage->delete();

    return redirect()->back()->with('success', 'Изображение удалено');
}
选项2: 更改路由文件中的参数:

Route::delete('/admin/clinic/{clinic}/clinic-image/{clinicImage})->name('');

在你的控制器文件中试试这个

公共功能销毁(ClinicImage$ClinicImage)
{
$clinicImage->delete();
return redirect()->back()->带('success'、'CharStyleзжжжжжзжжзежжж;
}
在您的视图文件中


(在这里,您需要一次传递一个id,您需要删除该id)

在控制器文件中尝试此操作

公共功能销毁(ClinicImage$ClinicImage)
{
$clinicImage->delete();
return redirect()->back()->带('success'、'CharStyleзжжжжжзжжзежжж;
}
在您的视图文件中


(在这里,您需要一次传递一个id,您需要删除该id)

您要发送两个参数且仅期望一个,请尝试以下操作:公用函数销毁($clinic,ClinicImage$ClinicImage)您要发送两个参数且仅期望一个,请尝试以下操作:公用函数销毁($clinic,ClinicImage$ClinicImage)我无法更改路由参数,因为控制器是资源。我无法更改路由参数,因为控制器是资源。您的答案部分正确,我刚刚为
Clinic$Clinic添加了依赖项
您的答案部分正确,我刚刚为
Clinic$Clinic添加了依赖项