Самый простой способ - сохранить ваши данные за пределами веб-каталога. Таким образом, у сервера есть доступ к ним, но нет внешней машины. Единственная нижняя сторона - вам нужно иметь доступ к этой части вашего сервера. Потенциал роста не требует настройки, конфигурации или дополнительного стресса кода / сервера.
return
убивает выполнение функции и возвращает значение.
public function store(Request $request)
{
//
$this->validate($request,[
'product_name' => 'required|string|max:191',
'quantity' => 'required|integer',
'product_id' => 'required',
'category' => 'string|max:191',
'brand' => 'string|max:191',
'provider_id' => 'required'
]);
$product = Product::create([
'product_name' => $request['product_name'],
'quantity' => $request['quantity']
]);
$productDetails = ProductDetails::create([
'product_id' => $request['product_id'],
'category' => $request['category'],
'brand' => $request['brand'],
'provider_id' => $request['provider_id']
]);
return $product;
}
Я считаю, что вы должны модульно кодировать ваш код для лучшего обслуживания:
Во-первых, не проверяйте ваш запрос в контроллере. Создайте запрос формы:
php artisan make:request StoreProduct
Создайте логику проверки в файле, расположенном в app / Http / Requests / StoreProduct
class StoreProduct extends FormRequest
{
/**
* 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 [
'product_name' => 'required|string|max:191',
'quantity' => 'required|integer',
'product_id' => 'required',
'category' => 'string|max:191',
'brand' => 'string|max:191',
'provider_id' => 'required'
];
}
в файле вашего контроллера.
//include the request file
use App\Http\Requests\StoreProject;
// (...) the rest of your code
// The validation is called before the controller method
public function store(StoreProduct $request)
{
$validated = $request->validated();
$this->storeProduct($request);
$this->storeProductDetails($request);
// Return a redirect response and not a $product
// Is a good practice to redirect to your products list
// for example: redirect('/productsList');
// Here, I'm redirecting to your root page;
return redirect('/');
}
public function storeProduct(StoreProduct $request){
Product::create([
'product_name' => $request['product_name'],
'quantity' => $request['quantity']
]);
}
public function storeProductDetails(StoreProduct $request){
ProductDetails::create([
'product_id' => $request['product_id'],
'category' => $request['category'],
'brand' => $request['brand'],
'provider_id' => $request['provider_id']
]);
}
Ссылка: Проверка запроса формы Laravel