1

我已经审查了类似的问题,但没有一个解决方案对我有用。我已经展示了从我想要显示的数据库中获取数据的视图。我相信我的 CtnController 上的 show 函数有正确的代码,但我一直收到这个令人沮丧的错误。在这种情况下,Ctn 是我正在尝试创建的一种表单。

这是我的控制器。

<?php

namespace App\Http\Controllers;
use App\Ctn;

use Illuminate\Http\Request;
class CtnController extends Controller
{
           /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }
        /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $ctns = Ctn::orderBy('created_at', 'desc')->paginate(5);
        return view('/ctn.index')->with('ctns', $ctns);
    }

    public function create(){
    return view('/ctn.create'); 
    }

    public function store(Request $request){
        $validatedData = $request -> validate([
            'bol' => 'required',
            'carrier' => 'required',
             'address' => 'required',
             'etd' => 'required',
             'eta' => 'required',
             'portload' => 'required',
             'portdischarge' => 'required',

        ]);

        $ctn = new Ctn;
        $ctn->bill_landing = request('bol');
        $ctn->carrier = request('carrier');
        $ctn->address = request('address');
        $ctn->eta = request('eta');
        $ctn->etd = request('etd');
        $ctn->incoterm = request('incoterm');
        $ctn->forwarder = request('forwarder');
        $ctn->ctnref = request('ctnref');
        $ctn->portloading = request('portload');
        $ctn->portdischarge = request('portdischarge');
        $ctn->quantity = request('quantity');
        $ctn->origin_goods = request('origin');
        $ctn->cost_goods = request('cost');
        $ctn->currency = request('currency');
        $ctn->package_type = request('package');

        $ctn->save();
        return redirect('/ctn')->with('success', 'CTN created');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {

        $ctn = Ctn::find($id);
        return view('/ctn.show', compact('ctn'));
    }
}

以下是我在 web.php 文件上的展示路线

Route::get('/ctn/show', 'CtnController@show')->name('show');

显示表单只是一个 HTML 表单。

4

2 回答 2

1

您的show()方法除了$id,但是,您没有在路由中指定值。更改您的路线定义,以便可以接受id

Route::get('/ctn/show/{id}', 'CtnController@show')->name('show');

这将假设您使用的网址如下:

http://example.com/ctn/show/1

有关更多信息,您可以查看路由参数文档

于 2020-04-10T07:39:03.607 回答
0

$id您的方法的参数show需要路由参数的隐式绑定,但您的路由不知道任何id参数,因此它不能绑定到您的方法。

于 2020-04-10T07:39:16.633 回答