首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Controller函数中的所有变量发送到视图

将Controller函数中的所有变量发送到视图
EN

Stack Overflow用户
提问于 2015-12-22 18:39:44
回答 3查看 37关注 0票数 0

我的控制器里有个函数。我创建了许多变量,并通过compact函数一个一个地将它们发送到我的视图中。

代码语言:javascript
复制
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'

        ]));

}

问题

是否有一种方法可以将所有的变量都发送到视图中,而不是一个一个地执行呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-22 18:57:19

你可以做以下..。

代码语言:javascript
复制
return view('cpe.edit', get_defined_vars());

但是,如果您正在创建许多变量,而在您的视图中不需要这些变量,则可能会有一些不必要的开销。

票数 2
EN

Stack Overflow用户

发布于 2015-12-22 18:53:19

为了简化你可以这样做

代码语言:javascript
复制
// BaseController
protected $data = array();

// Controller
$this->data = array(
    'variable' => $variable, 
    // ...
);

return View::make('example', $this->data);

但我认为没有更简单的方法,或者我没有意识到。

票数 2
EN

Stack Overflow用户

发布于 2015-12-22 19:28:21

可以使用数组将所有变量发送到视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34422405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档