【发布时间】:2019-02-22 06:34:50
【问题描述】:
我是学习 Laravel 的新手,但仍在努力学习漂亮的编码。
我有一个这样的代码,它在提交更新表单时验证输入字段,它有许多不必要的代码,可以修改以使其更短更好。
所以我的问题是,我应该采用什么方法或技术来重写我的代码以使其简短而美观。
public function update(Request $request, $id)
{
$product = Product::find($id);
if ($product->name != $request->name AND $product->sku != $request->sku AND $product->description != $request->description) {
$this->validate($request, [
'name' => 'required|unique:products,name',
'sku' => 'required|unique:products,sku',
'description' => 'required'
]);
} elseif ($product->name != $request->name AND $product->sku != $request->sku) {
$this->validate($request, [
'name' => 'required|unique:products,name',
'sku' => 'required|unique:products,sku'
]);
} elseif ($product->name != $request->name AND $product->description != $request->description) {
$this->validate($request, [
'name' => 'required|unique:products,name',
'description' => 'required'
]);
} elseif ($product->description != $request->description AND $product->sku != $request->sku) {
$this->validate($request, [
'description' => 'required',
'sku' => 'required|unique:products,sku'
]);
} elseif ($product->name != $request->name) {
$this->validate($request, [
'name' => 'required|unique:products,name'
]);
} elseif ($product->description != $request->description) {
$this->validate($request, [
'description' => 'required'
]);
} elseif ($product->sku != $request->sku) {
$this->validate($request, [
'sku' => 'required|unique:products,sku'
]);
} else {
return redirect('products/' . $product->id)->with('info', 'Product does not changed!');
}
}
【问题讨论】:
-
改用FormRequests。祝你好运!
-
我确实使用 laravel 表单请求使其工作,但与此相关的问题是如何使 html 代码更短,因为如您所见,我使用条件 if else 来处理 html 输入条件。
标签: laravel validation laravel-5.6