我的控制器里有个函数。我创建了许多变量,并通过compact函数一个一个地将它们发送到我的视图中。
public function edit($id,$cpe_mac) {
$vcpe = VSE::vcpe($cpe_mac);
$vcpe = json_decode (json_encode($vcpe), FALSE);
$cpe = VSE::cpe($cpe_mac);
$wan = $cpe['wan'];
$acl = $cpe['acl'];
$guest = $cpe['vlan'][0];
$private = $cpe['vlan'][1];
$cpe_name = VSE::cpe_name($cpe_mac)['cpe_name'];
$p_max_up = $private['bandwidth']['max_up'];
$p_max_down = $private['bandwidth']['max_down'];
$p_ip = $private['lan']['ip_address'];
$p_netmask = $private['lan']['netmask'];
$p_max_clients = $private['lan']['dhcp_server']['max_clients'];
$p_dns = $private['lan']['dhcp_server']['dns'][0];
$p_dns2 = $private['lan']['dhcp_server']['dns'][1];
$cpe = json_decode (json_encode($cpe), FALSE);
return view('cpe.edit', compact(['vcpe','cpe_mac','cpe_name','cpe','wan','acl','private','guest',
'p_max_up','p_max_down','p_ip','p_netmask','p_max_clients','p_dns','p_dns2'
]));
}问题
是否有一种方法可以将所有的变量都发送到视图中,而不是一个一个地执行呢?
发布于 2015-12-22 18:57:19
你可以做以下..。
return view('cpe.edit', get_defined_vars());但是,如果您正在创建许多变量,而在您的视图中不需要这些变量,则可能会有一些不必要的开销。
发布于 2015-12-22 18:53:19
为了简化你可以这样做
// BaseController
protected $data = array();
// Controller
$this->data = array(
'variable' => $variable,
// ...
);
return View::make('example', $this->data);但我认为没有更简单的方法,或者我没有意识到。
发布于 2015-12-22 19:28:21
可以使用数组将所有变量发送到视图。
https://stackoverflow.com/questions/34422405
复制相似问题