122 lines
2.3 KiB
PHP
122 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\View\Components\Index;
|
|
|
|
use App\Abstracts\View\Component;
|
|
|
|
class Search extends Component
|
|
{
|
|
/**
|
|
* The Currency currency.
|
|
*
|
|
* @var bool|string
|
|
*/
|
|
public $searchString;
|
|
|
|
/**
|
|
* The Currency currency.
|
|
*
|
|
* @var bool|string
|
|
*/
|
|
public $bulkAction;
|
|
|
|
/**
|
|
* The Currency currency.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $action;
|
|
|
|
/**
|
|
* The Currency currency.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $route;
|
|
|
|
/**
|
|
* The Currency currency.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $url;
|
|
|
|
/**
|
|
* Create a new component instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(
|
|
$searchString = false, $bulkAction = false, $action = false, $route = false, $url = false
|
|
) {
|
|
$this->searchString = $searchString;
|
|
$this->bulkAction = $bulkAction;
|
|
$this->action = $this->getAction($action, $route, $url);
|
|
}
|
|
|
|
/**
|
|
* Get the view / contents that represent the component.
|
|
*
|
|
* @return \Illuminate\Contracts\View\View|string
|
|
*/
|
|
public function render()
|
|
{
|
|
return view('components.index.search');
|
|
}
|
|
|
|
protected function getAction($action, $route, $url)
|
|
{
|
|
if (! empty($action)) {
|
|
return $action;
|
|
}
|
|
|
|
if (! empty($route)) {
|
|
return $this->getRouteAction($route);
|
|
}
|
|
|
|
if (! empty($url)) {
|
|
return $this->getUrlAction($url);
|
|
}
|
|
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Get the action for a "url" option.
|
|
*
|
|
* @param array|string $options
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getUrlAction($options)
|
|
{
|
|
if (is_array($options)) {
|
|
return url($options[0], array_slice($options, 1));
|
|
}
|
|
|
|
return url($options);
|
|
}
|
|
|
|
/**
|
|
* Get the action for a "route" option.
|
|
*
|
|
* @param array|string $options
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getRouteAction($options)
|
|
{
|
|
if (is_array($options)) {
|
|
$parameters = array_slice($options, 1);
|
|
|
|
if (array_keys($options) === [0, 1]) {
|
|
$parameters = head($parameters);
|
|
}
|
|
|
|
return route($options[0], $parameters);
|
|
}
|
|
|
|
return route($options);
|
|
}
|
|
}
|