[英]Cakephp - multiple views one controller-Function
我和CakePHP一起工作了几个星期。 我已经使用控制台创建了CRUD功能和分页。 对于布局,我使用了bootstrap中的插件。 该网站旨在促进竞争过程。 现在我有一个问题:在我的示例中,有不同的用户角色。 对于角色,我们需要一个在每次其他表内容出现时都在16个视图中使用的函数。 但是我不能写相同的函数16次吗? 感谢您的意见 :)
在AppController中添加该功能,该功能由每个Controller扩展。
AppController的示例
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $components = array('DebugKit.Toolbar');
function usedInDifferentControllers($param1, $param2){
//code
}
}
PagesController的示例
App::uses('AppController', 'Controller');
class PagesController extends AppController {
function action_name(){
//call the function from AppController
$this->usedInDifferentControllers($param1, $param2);
}
//optionally, you can override the method if required for each controller
function usedInDifferentControllers(){
parent::usedInDifferentControllers();
}
}
也许我说错了:这16个视图中使用的操作每次都需要另一个表记录。 我的意思是它是同一张桌子,但是这张桌子上有另外一条记录://所以我只有一张桌子! 功能(动作)始终相同。
//示例表(名字,姓氏,数字1,数字2,数字3,等等...)
//在控制器中执行dosomething(){}
//在视图中dosomething.ctp(名字,姓氏,数字1)dosomething1.ctp(名字,姓氏,数字2)dosomething2.ctp(名字,姓氏,数字3)
最后,我将有一个函数,它将在新视图中使用此数字进行计算:)
我搜索类似的东西:
public function index() {
// 0 CakePHP fetches Group data and its domain
$groupId=$this->Auth->user('User.role_id');
if($groupId==1) $this->view='viewA';
else if($groupId==4) $this->view='ViewB';
$participants = $this->Participant->recursive = 0;
$this->set('participants',$this->Paginator->paginate());
}
但这不是这样的:(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.