Laravel вставляет данные в две разные таблицы

Самый простой способ - сохранить ваши данные за пределами веб-каталога. Таким образом, у сервера есть доступ к ним, но нет внешней машины. Единственная нижняя сторона - вам нужно иметь доступ к этой части вашего сервера. Потенциал роста не требует настройки, конфигурации или дополнительного стресса кода / сервера.

1
задан ttulka 6 March 2019 в 17:47
поделиться

2 ответа

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;

    }
0
ответ дан Bharat Geleda 6 March 2019 в 17:47
поделиться

Я считаю, что вы должны модульно кодировать ваш код для лучшего обслуживания:

Во-первых, не проверяйте ваш запрос в контроллере. Создайте запрос формы:

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

0
ответ дан Leonardo 6 March 2019 в 17:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: