I am new to learning Laravel and still trying to learn beautiful coding.
I have a code like this that validates the input fields upon submitting the update form and it has many unnecessary codes that can be modified to make it short and better.
So my question is, what is an approach or technique should I take to rewrite my codes to make it short and beautiful.
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!');
}
}