php - 如何从视图的 URL 中获取值并在控制器中使用它?
问题描述
我有 2 个刀片视图。在第一个中,我发送一个id
aproduct
并重定向到另一个view
我需要输入其他内容的地方。在控制器中,我无法id
从第一个视图中获取信息,以便使用它将两个视图中的所有信息存储在我的数据库中。
我需要获得shoe_id/$product->id
价值!
这是第一个视图:
<form action="{{ route('search') }}" method="GET">
<input type="text" name="search" required/>
<button class ="btn" type="submit">Search</button>
</form>
</h3>
@if($products->isNotEmpty())
@foreach ($products as $product)
<div class="col-md-2">
<form action="sell/{{$product->id}}" method="POST">
@csrf
{{-- <a href="{{'products/sell/' . $product->id }}"> --}}
<button name="shoe_id" value="{{ $product->id }}" class="btn">
<img src="/imagini/{{ $product->id }}.1.jpg" style="height: 210px">
</button>
{{-- </a> --}}
</form>
<p style="text-align: center">{{ $product->title }}</p>
</div>
@endforeach
这是第二个视图:
<form action="/select/{product_id}" method="post">
@csrf
<h2>Select a size:</h2>
<div class="row" style="margin-bottom: 50px">
<select class="select2" name="size" style="width: 300px">
<option>35</option>
<option>35.5</option>
<option>36</option>
<option>36.5</option>
<option>37</option>
<option>37.5</option>
<option>38</option>
<option>38.5</option>
<option>39</option>
<option>39.5</option>
<option>40</option>
<option>40.5</option>
<option>41</option>
<option>41.5</option>
<option>42</option>
<option>42.5</option>
<option>43</option>
<option>43.5</option>
<option>44</option>
<option>44.5</option>
<option>45</option>
<option>45.5</option>
<option>46</option>
<option>46.5</option>
<option>47</option>
<option>47.5</option>
<option>48</option>
<option>48.5</option>
</select>
</div>
<div class="row" style="margin-bottom: 50px">
<h2>Insert the price:</h2>
<input type="text" style="width: 300px" placeholder="$" name="price" required>
</div>
<input type="submit" class="btn btn-success btn-lg px-3" value="Sell!">
</form>
这是控制器:
public function store($shoe_id){
request()->validate(['price'=> 'required|max:255']);
// $url = request('id');
dd($shoe_id);
ListedProducts::create([
'user_id'=> auth()->id(),
// 'shoe_id'=> ,
'size'=>request('size'),
'price'=>request('price')
]);
return redirect('/home');
}
和 web.php 文件:
Route::post('sell/{product_id}', [\App\Http\Controllers\ProductsController::class, 'sell'])->name('sell');
Route::get('sell/{product_id}', [\App\Http\Controllers\ProductsController::class, 'store']);
Route::post('select',[App\Http\Controllers\ProductsController::class, 'store']);
解决方案
简单的方法就是使用 HTTP GET 的查询参数。
重定向时/home
添加查询参数shoe_id
return redirect()->route('home', ['shoe_id' => $shoe_id]);
然后在您的home
控制器功能中,获取shoe_id
查询参数
public function index(Request $request) {
$shoe_id = $request->input('shoe_id');
...
}
编辑:请阅读此参考资料。
推荐阅读
- c++ - 如何简洁地将一个数组的范围分配给另一个数组的范围?
- angular - Ionic 3 - 以格式化方式显示来自 HTTP 请求的 JSON 响应
- java - Chrome CustomTabs CustomTabsCallback onPostMessage 未调用
- sql - 将左外连接添加到递归语句导致语法错误
- r - R - (Tidyverse) 将多个观测值压缩为一个
- python - 正则表达式从 Python 中的证书中删除开头和结尾
- r - R构建一个包为小插图提供了不同的输出
- regex - 正则表达式匹配承载令牌
- google-maps - Google Maps API - PlacesAutocomplete 类型问题
- css - 使用 Shiny 在单元格中显示多个图像时如何调整图像大小和更改图像之间的间距