#laravel
#laravel
Вопрос:
Это работает отлично, но я хочу, чтобы оператор return был в <p>
теге в представлении
LARAVEL 8.x
$product = Product::find($id);
if(!$product) {
abort(419);
}
$value = $request->session()->get('id');
if ($value == $id) {
return "You can purchase an item at a time!";
} else {
$initial = $product->quantity;
if ($initial > 0) {
$final = $initial - 1;
$product->quantity = $final;
$product->save();
$request->session()->put('id', $id);
var_dump($value);
var_dump($product->quantity);
} else {
return "out of stock";
}
}
return redirect()->action([ProductController::class, 'index']);
Я пробовал, как это сделать. Хотя я мог бы использовать @if
on blade для $product->quantity
отображения «нет в наличии», но «вы можете приобрести только товар за раз».
Комментарии:
1. может быть, вам следует использовать
return redirect()->action([ProductController::class, 'index'])->with(['[VARIABLE NAME], => [YOUR VARIABLE]'])
или, если вы настраиваете имя веб-маршрута, сделайте такreturn redirect()->route('products.index', '[YOUR VARIABLE HERE]')
2. Где вы получаете ошибку?
3. Как мне использовать ее из блейда @codeformoney
Ответ №1:
Вот как вы это сделаете
КОНТРОЛЛЕР, КОТОРЫЙ ВЫ ПРЕДОСТАВИЛИ
$product = Product::find($id);
if(!$product) {
abort(419);
}
$value = $request->session()->get('id');
if ($value == $id) {
return "You can purchase an item at a time!";
} else {
$initial = $product->quantity;
if ($initial > 0) {
$final = $initial - 1;
$product->quantity = $final;
$product->save();
$request->session()->put('id', $id);
var_dump($value);
var_dump($product->quantity);
} else {
return "out of stock";
}
}
return redirect()->route('products.index')->with(['product' => $product]);
В вашем web route
файле у вас должно быть вот так.
Route::get('/products', [ProductController::class, 'index'])->name('product.index');
Затем в вашем блейд-компоненте вы можете
<h1> {{ $product->id ?? 'No Product ID given' }} </h1>