2015-11-19 85 views
0

Laravel 5.我想稍后设置视图的路径。但创建一个实例,以便我可以为其设置数据。Laravel:初始化后设置视图的路径

所以在结果:

$view = new View(); 
$view->with('key', $data); 
$view->setPath($path); 
$view->render(); 

这可能吗?

回答

0

不,这是不可能的。因为Illuminate\View\View构造函数需要作为参数。

+0

我认为这是laravel变得不那么灵活的情况。正如我从这个例子和其他例子看到的,最好创建一个没有参数的构造函数。 – FreeLightman

0

其中一种方法是创建一个简单的自定义类View。其内容将为:

public function __construct($data = null) { 
    if ($data) { 
     $this->data = $data; 
    } 
} 

public function with($key, $val) { 
    if (is_array($key)) { 
     $this->data = array_merge($this->data, $key); 
    } else { 
     $this->data[$key] = $val; 
    } 
} 

public function setPath($path) { 
    $this->path = $path; 
} 

public function render() { 
    return view($this->path, $this->data); 
} 

它允许管理视图流。