如何解决此错误"Too few arguments to function AppHttpControllersCtnController::show(), 0 passed and ex



我已经复习了类似的问题,但没有一个解决方案对我有效。我有一个显示视图,它从我想要显示的数据库中获取数据。我相信我的CtController上有适合我的show函数的代码,但我一直收到这个令人沮丧的错误。在这种情况下,Ctn是我试图创建的一种形式。

这是我的控制器。

<?php
namespace AppHttpControllers;
use AppCtn;
use IlluminateHttpRequest;
class CtnController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
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 IlluminateHttpResponse
*/
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表单。

您的show()方法超出了$id,但是,您尚未在路由中指定值。更改您的路线定义,使其可以接受id:

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

这将假设您使用的url如下:

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

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

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

最新更新