首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ErrorException未定义变量$inventory

ErrorException未定义变量$inventory
EN

Stack Overflow用户
提问于 2022-01-04 13:40:59
回答 1查看 220关注 0票数 0

当前,当我单击“编辑”来编辑库存表中的一个条目时,会发现一个错误,该条目说我没有定义$inventory。我感到困惑的是,当我似乎在控制器中正确地通过了它时,为什么是这样。

这是我的edit.blade文件:

代码语言:javascript
复制
@extends('layouts.app')

@section('title', 'Edit Inventory')

@section('menu')

@section('content')
    <h1><strong>Edit Inventory {{ $inventory->title }}</strong></h1>
    {{ $inventory }}
    <x-inventory-form :inventory=$inventory
    @method('patch') />
    <input type="hidden" name="_method" value="patch">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
@endsection

这里是我的控制器(特别是查看编辑):

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use App\Models\Inventory;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Routing\Redirector;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Facades\Log;

class InventoryController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Contracts\View\View
     */
    public function index()
    {
        $inventories = Inventory::all();
        return view('pages.inventories',[
            "inventories" => $inventories
        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Contracts\View\View
     */
    public function create()
    {
        return view('pages.inventories.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param Request $request
     * @return Redirector
     */
    public function store(Request $request)
    {
        $validated = $request->validate([
            'title'=> 'required|string',
            'description'=> 'required|string|max:300',
            'price' => 'required|integer|min:0',
            'in_stock' => 'required|integer',
            'on_sale' => 'required|boolean'
        ]);
        $inventory = new Inventory();

        $inventory->fill($validated)->save();

        return redirect('/inventories');
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @return \Illuminate\Contracts\View\View
     */
    public function edit(Inventory $inventory)
    {
        $inventories = Inventory::all();
        return view('pages.inventories.edit',[
            "inventories" => $inventories
        ]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param Request $request
     * @param Inventory $inventory
     * @return Redirector
     * @throws ValidationException
     */
    public function update(Request $request, Inventory $inventory)
    {
        $this->validate($request, [
            'title'=> 'required|string',
            'description'=> 'required|string|max:300',
            'price' => 'required|integer|min:0',
            'in_stock' => 'required|integer',
            'on_sale' => 'required|boolean'
        ]);
        $model->fill((array)$inventory)->save();
        return redirect('pages.inventories.edit',['inventory' => $inventory])->with('Item has been updated!' . $model('title'));
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return RedirectResponse
     */
    public function destroy(Inventory $inventory)
    {
        $inventory->delete();
        return redirect()->route('/inventories')->with('Item has been deleted!');
    }
}

这是我的路由器:

代码语言:javascript
复制
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', [\App\Http\Controllers\HomeController::class, 'index'])->name('pages.index');

Route::get('/inventories', [\App\Http\Controllers\InventoryController::class, 'index'])->name('index');

Route::get('/inventories/create', [\App\Http\Controllers\InventoryController::class, 'create']);

Route::post('/inventories', [\App\Http\Controllers\InventoryController::class, 'store']);

Route::get('/inventories/{inventory}/edit',[\App\Http\Controllers\InventoryController::class, 'edit'])->name('inventories.edit');

Route::patch('/inventories/{inventory}',[\App\Http\Controllers\InventoryController::class, 'update'])->name('inventories.update');

Route::delete('/inventories/{inventory}', [\App\Http\Controllers\InventoryController::class, 'destroy'])->name('inventories.destroy');

任何帮助都会很好。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-04 13:46:11

在刀片文件中使用变量"inventory“,但是在控制器的编辑函数中,您传递了名为”库存“的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70579695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档