Yii2-一些控制器的通用功能 - 写代码

时间:2015-11-11 21:06:13

标签: yii2

我有这样的表:书和人。一本书可以在一个人的手中。我在gii中为book创建了表单。在表格中,我可以写一本书的名字,然后选择一个拿着这本书的人。在书的控制器中我写了

class CreateContactView(LoginRequiredMixin, CreateView):                                                     
    template_name = 'contacts/contact_form.html'                                
    form_class = ContactForm 
    form_class.helper.form_action = ""                                                                              
    model = Contact                                                             
    success_url = reverse_lazy('contacts:list_contacts')

“persons_dropdown”是数组,如1 =>“John Smith”,2 =>“Stan Green”。 函数getDropdown是:

 return $this->render('create', [
        'model' => $model,
        'persons_dropdown' => getDropdown('app\models\Person', 'name'),
    ]);

问题是 - 我应该在哪里替换函数getDropdown()(此函数是任何控制器的通用函数,它将在某些控制器中使用)?或者我可以通过yii工具获得必要的数组,而不需要我的功能。

1 个答案:

答案 0 :(得分:1)

一个好的解决方案是为这种类型的函数创建一个帮助器

基本上你可以在你的模型中创建一个合适的类,然后通过声明(public static)来引用相关的函数/方法

use common/models/YourHelper;


YourHelper::yourMethod();

有人创建了个人供应商,并在辅助子目录

中添加了这种常用功能