/**
* Determine if the current request URL and query string matches a pattern.
*
* @param mixed string
* @return bool
*/
public function fullUrlIs()
{// check string like URL
$url = $this->fullUrl();
foreach (func_get_args() as $pattern) {
if (Str::is($pattern, $url)) {
return true;
}
}// foreach like loop it
return false;
}//Determine if the current request URL and query string matches a pattern.
/**
* Determine if the request is the result of an AJAX call.
*
* @return bool
*/
public function ajax()
{
return $this->isXmlHttpRequest();
}//Determine if the request is the result of an AJAX call.
/**
* Determine if the request is the result of an PJAX call.
*
* @return bool
*/
public function pjax()
{
return $this->headers->get('X-PJAX') == true;
}//Determine if the request is the result of an PJAX call.
/**
* Determine if the request is over HTTPS.
*
* @return bool
*/
public function secure()
{
return $this->isSecure();
}//Determine if the request is over HTTPS.
/**
* Returns the client IP address.
*
* @return string
*/
public function ip()
{
return $this->getClientIp();
}// Returns the client IP address.
/**
* Returns the client IP addresses.
*
* @return array
*/
public function ips()
{
return $this->getClientIps();
}//Returns the client IP address.
/**
* Determine if the request contains a given input item key.
*
* @param string|array $key
* @return bool
*/
public function exists($key)
{//Determine if the request contains a given input item key.
$keys = is_array($key) ? $key : func_get_args();// $key get the key
$input = $this->all();// get all input request
foreach ($keys as $value) {
if (! array_key_exists($value, $input)) {
return false;
}
}
return true;
}
/**
* Determine if the request contains a non-empty value for an input item.
*
* @param string|array $key
* @return bool
*/
public function has($key)
{// Determine if the request contains a non-empty value for an input item.
$keys = is_array($key) ? $key : func_get_args();
foreach ($keys as $value) {
if ($this->isEmptyString($value)) {
return false;
}
}
return true;
}
/**
* Determine if the given input key is an empty string for "has".
*
* @param string $key
* @return bool
*/
protected function isEmptyString($key)
{
$value = $this->input($key);
$boolOrArray = is_bool($value) || is_array($value);
return ! $boolOrArray && trim((string) $value) === '';
}//Determine if the given input key is an empty string for "has"
/**
* Get all of the input and files for the request.
*
* @return array
*/
public function all()
{
return array_replace_recursive($this->input(), $this->allFiles());
}// Get all of the input and files for the request.
/**
* Retrieve an input item from the request.
*
* @param string $key
* @param string|array|null $default
* @return string|array
*/
public function input($key = null, $default = null)
{
$input = $this->getInputSource()->all() + $this->query->all();
return data_get($input, $key, $default);
}//Retrieve an input item from the request.
/**
* Get a subset of the items from the input data.
*
* @param array|mixed $keys
* @return array
*/
public function only($keys)
{//Get a subset of the items from the input data.
$keys = is_array($keys) ? $keys : func_get_args();// keys
$results = [];// get result
$input = $this->all();// get the input
foreach ($keys as $key) {// loop keys
Arr::set($results, $key, data_get($input, $key));
}
return $results;
}
/**
* Get all of the input except for a specified array of items.
*
* @param array|mixed $keys
* @return array
*/
public function except($keys)
{
$keys = is_array($keys) ? $keys : func_get_args();
$results = $this->all();
Arr::forget($results, $keys);
return $results;
}//Get all of the input except for a specified array of items.
/**
* Retrieve a query string item from the request.
*
* @param string $key
* @param string|array|null $default
* @return string|array
*/
public function query($key = null, $default = null)
{
return $this->retrieveItem('query', $key, $default);
}// Retrieve a query string item from the request.
/**
* Determine if a cookie is set on the request.
*
* @param string $key
* @return bool
*/
public function hasCookie($key)
{
return ! is_null($this->cookie($key));// is_null
}//Determine if a cookie is set on the request.
/**
* Retrieve a cookie from the request.
*
* @param string $key
* @param string|array|null $default
* @return string|array
*/
public function cookie($key = null, $default = null)
{
return $this->retrieveItem('cookies', $key, $default);
}//Retrieve a cookie from the request.
/**
* Get an array of all of the files on the request.
*
* @return array
*/
public function allFiles()
{
$files = $this->files->all();
return $this->convertedFiles
? $this->convertedFiles
: $this->convertedFiles = $this->convertUploadedFiles($files);
}//get allFiles
/**
* Convert the given array of Symfony UploadedFiles to custom Laravel UploadedFiles.
*
* @param array $files
* @return array
*/
protected function convertUploadedFiles(array $files)
{//convert the given array of Smfony UploadedFiles to custom laravel UploadedFiles.
return array_map(function ($file) {
if (is_null($file) || (is_array($file) && empty(array_filter($file)))) {
return $file;
}
return is_array($file)
? $this->convertUploadedFiles($file)
: UploadedFile::createFromBase($file);
}, $files);//return array_map
}
/**
* Retrieve a file from the request.
*
* @param string $key
* @param mixed $default
* @return \Symfony\Component\HttpFoundation\File\UploadedFile|array|null
*/
public function file($key = null, $default = null)
{
return data_get($this->allFiles(), $key, $default);
}//Retrieve a file from the request.
/**
* Determine if the uploaded data contains a file.
*
* @param string $key
* @return bool
*/
public function hasFile($key)
{//Determine if the uploaded data contains a file.
if (! is_array($files = $this->file($key))) {
$files = [$files];
}
foreach ($files as $file) {
if ($this->isValidFile($file)) {
return true;
}
}
return false;
}