【发布时间】:2016-05-06 18:59:41
【问题描述】:
您好,我现在一直在使用隐式控制器,但今天我遇到了一个我无法理解的问题,我的 Route.php 中有以下内容:
/**
* Purchase
*/
Route::controllers([
'purchase' => 'PurchaseController'
]);
在我的控制器中我创建了这个方法:
public function postNsano(NsanoRequest $request)
{
$data = [
'code' => $request->code,
'msg' => $request->msg,
'reference' => $request->referencecode
];
if ($request->code == "00")
{
Session::put('nsano_callback_post_data', $data);
return [
'code' => '00',
'msg' => 'success'
];
}
else
{
return [
'code' => '01',
'msg' => 'rollback'
];
}
}
现在由于某种原因,当我尝试发布到此 URL 时: sample.com/purchase/nsano
我收到此错误:“找不到控制器方法” 这对我来说很奇怪,因为我可以在那里看到方法。
我取出 $request 并使用 Input::get() 代替,现在它可以工作了,有人可以向我解释一下吗?
这是我的要求:
class NsanoRequest extends Request {
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'code' => 'required',
'msg' => 'required',
'reference' => 'required'
];
}
}
【问题讨论】: