48 lines
		
	
	
		
			843 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			843 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php namespace DaveJamesMiller\Breadcrumbs;
 | |
| 
 | |
| use Illuminate\Contracts\Routing\Registrar as Router;
 | |
| 
 | |
| class CurrentRoute {
 | |
| 
 | |
| 	protected $route;
 | |
| 	protected $router;
 | |
| 
 | |
| 	public function __construct(Router $router)
 | |
| 	{
 | |
| 		$this->router = $router;
 | |
| 	}
 | |
| 
 | |
| 	public function get()
 | |
| 	{
 | |
| 		if ($this->route)
 | |
| 			return $this->route;
 | |
| 
 | |
| 		$route = $this->router->current();
 | |
| 
 | |
| 		if (is_null($route))
 | |
| 			return ['', []];
 | |
| 
 | |
| 		$name = $route->getName();
 | |
| 
 | |
| 		if (is_null($name)) {
 | |
| 			$uri = head($route->methods()) . ' /' . $route->uri();
 | |
| 			throw new Exception("The current route ($uri) is not named - please check routes.php for an \"as\" parameter");
 | |
| 		}
 | |
| 
 | |
| 		$params = array_values($route->parameters());
 | |
| 
 | |
| 		return [$name, $params];
 | |
| 	}
 | |
| 
 | |
| 	public function set($name, $params)
 | |
| 	{
 | |
| 		$this->route = [$name, $params];
 | |
| 	}
 | |
| 
 | |
| 	public function clear()
 | |
| 	{
 | |
| 		$this->route = null;
 | |
| 	}
 | |
| 
 | |
| }
 | 
