【问题标题】:Using controller in view with Laravel在 Laravel 中使用控制器
【发布时间】:2013-02-25 15:17:45
【问题描述】:

我的一个控制器(成员)中有一个简单的功能:

function action_data($array) { 
    $datamembre = DB::table('members')->where('id', '=', $id)->first(); 
    return $datamembre; 
}

我想在另一个控制器的视图中使用它,我在我的模板中这样做:

 $datamembers = Controller::call('members@data', array($members_id));

有没有更好或更合适的方法?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    最好将其放入 IMO 会员模型中。

    【讨论】:

    • 这个。它看起来像数据逻辑,所以它属于模型。使用作曲家将其提供给您的视图。您不应该在视图中调用任何控制器、模型等。
    【解决方案2】:

    使用视图作曲家http://laravel.com/docs/views#view-composers

    View::composer(array('home', 'profile'), function($view)
    {
        //
    });
    

    更新

    你可以把这个方法放在 BaseController 中,所有的控制器都扩展它,所以你可以在任何控制器/视图中获取这个方法。并使其成为静态的。

    // in BaseController.php (L4) or Base.php (L3)
    
    static public function action_data($array) { 
        $datamembre = DB::table('members')->where('id', '=', $id)->first(); 
        return $datamembre; 
    }
    

    在视图中

    BaseController::action_data($array); //L4
    
    Base_Cotroller::action_data($array); //L3
    

    希望它有效。没测试过。

    【讨论】:

    • 谢谢,但是作曲家是为了查看,我不想包含任何我想使用我的函数来显示每个用户名的视图。
    • 已更新。如果您愿意,请接受它作为正确答案,以便其他人可以使用它。
    猜你喜欢
    • 2018-01-24
    • 2015-05-23
    • 1970-01-01
    • 2021-01-20
    • 2019-02-06
    • 2014-03-08
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多