0
Laravel在其Request類中有一個方法,用於檢查請求中是否存在變量。
$request->has('varnamegoeshere')
我需要做相反的事情,並檢查請求中是否存在變量。當然,你會覺得下面的工作,但它並不:
if(!$request->has('varnamegoeshere'))
我怎麼去檢查,如果一個變量不要求存在嗎?
UPDATE:控制器和類代碼如下
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Project\Frontend\Repo\Vehicle\VehicleInterface;
use Illuminate\Support\Facades\View;
class SearchController extends BaseController
{
protected $vehicle;
public function __construct(
VehicleInterface $vehicle
)
{
$this->vehicle = $vehicle;
}
public function index(Request $request)
{
/*
* Search Refinement
*/
// Set links that will refine user selection when clicked
$search = array();
if(!$request->has('make'))
{
// Fetch makes for user refinement
$search['makes'] = $this->vehicle->setMakeLinks($request);
}
if(View::exists('index'))
{
return View::make('search')
->with('search', $search);
}
}
}
口才一流
<?php
namespace App\Project\Frontend\Repo\Vehicle;
use Illuminate\Database\Eloquent\Model;
class EloquentVehicle implements VehicleInterface
{
/**
* Protected variables
*
* @var Model
*/
protected $vehicle;
/**
* EloquentVehicle constructor.
*
* @param Model $vehicle
*/
public function __construct(
Model $vehicle
)
{
$this->vehicle = $vehicle;
}
/**
* Create links based on unique makes retrieved from the database
*
* @param null $request
* @return mixed
*/
public function setMakeLinks($request = null)
{
$query = $this->vehicle->groupBy('make')
->orderBy('make', 'asc')
->get();
// Create empty array
$links = array();
// Obtain query string
$queryString = str_replace($request->url(), '', $request->fullUrl());
foreach($query as $vehicle)
{
$append = '?make='.$vehicle->make;
if ($queryString != '')
$append = $queryString.'&make='.$vehicle->make;
array_push($links, '<a title="'.$vehicle->make.' for sale" itemprop="brand" href="'.url('usedcars/'.$append.'#searched').'">'.$vehicle->make.'</a>');
}
return $links;
}
}
查看文件
@extends('layouts.template')
@section('content')
@if(isset($search['make']))
<div id="refine" class="makes" itemscope itemtype="http://schema.org/AutomotiveBusiness">
<h2>Find cars by Make</h2>
<div id="choices">
@foreach($search['make'] as $link)
{!! $link !!}
@endforeach
<div id="clear-both"></div>
</div>
</div>
@endif
@endsection
我假設你注入'Request'類。你所做的沒有任何問題。這就是你如何檢查請求是否有參數。通過文檔'如果該值存在並且不是空字符串,則has方法返回true。問題在於其他地方,因爲這不能正常工作。你確定你正在注入正確的課程嗎? – Andrew
$ request->返回值定義爲bool,這意味着「if(!$ request-> has('varnamegoeshere'))」是正確的。你確定錯誤在那個部分嗎? – Tiega
@Andrew我正在注入正確的課程。我做了一個dd($ request-> all());檢查請求中的內容,並返回一個數組,其中包含URL中存在的$ _GET變量。 – VenomRush