And*_* S. 2 php laravel laravel-5
我是Laravel的新手,想知道处理重复代码的最佳实用方法.
我几乎在我的api-controller的所有功能中开始使用此代码:
// Validate parameters
$validator = Validator::make($request->all(), $this->validationRules);
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
Run Code Online (Sandbox Code Playgroud)
所以通常我会把它放在某个功能中.但是这个代码也用在很多其他控制器中.所以这个功能也应该被其他控制器调用.
在Laravel 5中处理这个问题的最佳做法是什么?我的第一个想法是使用此功能制作一些自己的控制器,而我的其他控制器将扩展它.
喜欢:
class MyController extends Controller
{
protected function handleFailByPrameter($params)
{
....
}
}
class Api1Controller extends MyController
{
public function apicall1()
{
$this->handleFailByPrameter($this->validationRules());
}
}
Run Code Online (Sandbox Code Playgroud)
但也许有其他一些方法来处理这类事情?
您可以创建在您的帮助验证功能,这将帮助你做到这一点,然后从任何地方在您的laravel应用(随时随地字面意思)把这种新的功能.你可以做的第二件事情是创建它被传递到下面的方式你的函数之前,将验证您的数据的自定义请求:
首先从工匠生成一个新的请求类
php artisan make:request ExplicitRequestName
Run Code Online (Sandbox Code Playgroud)
这将创造下的应用程序/ HTTP /名为ExplicitRequestName.php一个新的文件请求文件夹中打开它,在你的授权功能切换假为真,然后定义下列方式您的验证规则:
public function rules()
{
return [
'email' => 'required',
'password' => 'required',
];
}
Run Code Online (Sandbox Code Playgroud)
在函数中调用此请求对象:
public function someFunction(Requests\ExplicitRequestName $request)
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |