#php #laravel
#php #laravel
Вопрос:
Итак, я попробовал laravel и застрял, когда я хочу получить значение URL в качестве значения для моей базы данных. Вот код в моем контроллере.
public function store(Request $request, $shoe_id)
{
//Insert Data
$cart = new Cart;
$cart->user_id = Auth::user()->id;
$cart->shoe_id = $shoe_id;
$cart->quantity = $request->quan;
$cart->save();
return redirect()->back();
}
и вот проблема, с которой я столкнулся:
в нем говорится, что {shoe_id} — это строка, в которой я хотел быть целым числом из URL
Вот как выглядит мой веб-сайт: мой блейд
Вот мой web.php:
Route::get('/','homeController@main')->name('home');
Route::get('/home','homeController@main')->name('home');
Route::get('/detail/{shoe_id}', 'homeController@detail');
Route::get('/cart/{shoe_id}','CartController@show');
Route::post('/cart/{shoe_id}','CartController@store');
Вот мой блейд:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div style="text-align:center;">
<img src="{{ asset("$cart->shoe_image") }}" alt="" style=" width:350px; height:350px;">
<div class="card-header">{{$cart->shoe_name}}</div>
<div class="card-header">${{$cart->shoe_price}}</div>
<div class="card-header">{{$cart->shoe_description}}</div>
</div>
<div class="card-header form-group">
<form method="POST" action="/cart/{shoe_id}" enctype="multipart/form-data">
@csrf
<div class="form-row">
<div class="col-md-2">
<label for="quantity">Quantity:</label>
</div>
<div>
<input class = "form-control" type="text" id="quantity" name="quan"><br><br>
</div>
<button class="btn btn-primary" type="submit" name="addcart">Add to Cart</button>
</div>
</form>
{{-- <a class="btn btn-primary" href="#">Add to Cart</a> --}}
</div>
</div>
</div>
</div>
</div>
@endsection
что я хочу сделать: ввести введенные данные в базу данных. В моей базе данных есть таблица с именем cart с атрибутом id, user_id, shoe_id.
Комментарии:
1. пожалуйста, покажите вам реализацию маршрута и как вы вызываете URL
2. Опубликуйте свой вид блейда с формой и объявлением маршрута в routes (web.php ) файл в виде блоков кода — пожалуйста, не прикрепляйте изображение
3. Добро пожаловать в SO… что
{shoe_id}
должно быть?
Ответ №1:
В вашем действии формы вы должны указать фактическое значение для shoe_id, тогда оно будет работать так, как ожидалось. action="/cart/{{ $cart->shoe_id }}"
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div style="text-align:center;">
<img src="{{ asset("$cart->shoe_image") }}" alt="" style=" width:350px; height:350px;">
<div class="card-header">{{$cart->shoe_name}}</div>
<div class="card-header">${{$cart->shoe_price}}</div>
<div class="card-header">{{$cart->shoe_description}}</div>
</div>
<div class="card-header form-group">
<form method="POST" action="/cart/{{ $cart->shoe_id }}" enctype="multipart/form-data">
@csrf
<div class="form-row">
<div class="col-md-2">
<label for="quantity">Quantity:</label>
</div>
<div>
<input class = "form-control" type="text" id="quantity" name="quan"><br><br>
</div>
<button class="btn btn-primary" type="submit" name="addcart">Add to Cart</button>
</div>
</form>
{{-- <a class="btn btn-primary" href="#">Add to Cart</a> --}}
</div>
</div>
</div>
</div>
</div>
@endsection
Комментарии:
1.
{$cart->shoe_id}
будет{{ $cart->shoe_id }}
2. @sta Да, извините, что я виноват. Спасибо, что указали
3. все еще возникла проблема. Как насчет моего контроллера? как получить заданный {{ $cart->shoe_id }}
4. Какое значение
dd($shoe_id)
в методе store? Он должен получить значение, которое вы передаете из блейд-представления в качестве параметра маршрута5. это значение: «{shoe_id}»