在Laravel中

时间:2017-02-10 17:48:09

标签: php laravel-5 laravel-5.3

您好,这是我的第一个问题。

我正在使用php laravel框架,我收到此错误

MethodNotAllowedHttpException in RouteCollection.php line 233:

当我转到结果列表的第二页时会出现此错误。

我的控制器代码。

public function find_product(Request $request)
{
    $search = trim($request->product);

    $products = Store_product::(query-for-products-working)
        ->paginate(1);

    return view('fc.product',compact('products','search'));

}

我的web.php代码

Route::post('/product', 'FlashCartController@find_product');

我的观看代码

@foreach($products as $product)
<div class="fc-col">
  <div class="panel panel-primary">
    <div class="panel-heading fc-col-head"><div class="marquee">{{ $product->product_name }}</div></div>
    <div class="panel-body fc-col-body">
        <img src="{{ image_check('uploads/store/products/',$product->product_image1,'uploads/service/') }}" class="img-responsive" style="width:100%; height: 100%;" alt="{{ $product->product_name }}" />
    </div>
    <div class="panel-footer fc-col-footer">
        <span class="price">Rs.
        {{ 
            price_check($product->product_discount, $product->product_price, $product->sale_id, $product->discount)
        }}/-
        </span>
    </div>
  </div>
</div>
@endforeach
<div>
    {{ $products->links() }}
</div>

和表格

<form action="/product" method="POST">
{{ csrf_field() }}  
<div class="input-group container">
  <input type="text" name="product" class="form-control" value="{{$search}}" placeholder="Enter product name" />
  <div class="input-group-btn">
    <input type="submit" class="btn btn-danger" value="Search" />
  </div>
</div>
</form>

为什么我的方法不被允许。如果这不是使用我该怎么办的方法? 有人可以帮我这个吗? :(

3 个答案:

答案 0 :(得分:11)

好的,所以我的理解是,当您分页到下一页时,网址会变空,并且不会显示任何结果。

在你的视图中这一行

 {{ $products->links() }}

显示目前无论你的网址是什么,只是忽略它并为其添加分页,这意味着如果您的网址与www.abc.com?product=graphics类似,则会忽略product并仅添加www.abc.com?page=1,2,...当然您的页面将为空白。

使用此..

{{ $products->appends(request()->input())->links() }}现在它告诉我们添加分页但是也要添加变量。什么变数?已经在网址上附加的变量。

希望有所帮助

答案 1 :(得分:1)

您正在使用'POST',您应该对任何不更新数据库的请求使用'GET'

答案 2 :(得分:0)

此行:{{ $products->appends(request()->input())->links() }}有效,但是@Ali Rasheed忘记告诉表单方法仍然需要GET。对于其他答案,是的,它必须是一个GET请求,但仅适用于该请求。需要@Ali Rasheed的线路剧照。