【发布时间】:2014-04-05 15:09:19
【问题描述】:
只是一个询问你们如何在 Laravel 中解决这个问题的问题:
我在UserController.php 中定义了一个用户首选项页面,它在user/preferences.blade.php 创建视图。
管理员当然应该能够编辑用户的首选项,并显示一些需要更改的额外管理字段。此外,我想在一个名为 AdminUserController.php 的单独控制器中收集与用户有关的所有管理功能。
我正在考虑实现此功能的一些可能性:
创建一个额外的视图(例如
admin/user/preferences.blade.php)并几乎复制UserController.php的 GET 和 POST 方法以容纳额外的字段。然而,这在我看来像是很多冗余代码......-
将
UserController.php的 GET 和 POST 方法转换为如下形式:public function postPreferences($user = NULL, $admin = FALSE) { if (!isset($user)) $user = Auth::user(); // Process regular fields. if ($admin) { // Process admin fields. } }将管理字段添加到
user/preference.blade.php并在$admin为TRUE 时有条件地显示它们,然后从AdminUserController 中调用UserController 的方法,例如:public function postPreferences($user) { return (new UserController)->postPreferences($user, TRUE); }但是,也有一些缺点。第一:控制器不应该互相调用......第二:这仅适用于 POST 方法。从 UserController 请求 GET 方法后,将引发异常...
我很好奇你会如何解决这个问题! 谢谢。
【问题讨论】:
标签: forms laravel controller laravel-4