如何使用控制器名称在Yii Framework中获取当前模型名称

时间:2015-10-25 21:16:57

标签: yii

我对Yii框架有疑问。 我想使用控制器名称调用当前的modelClass名称。 例如,我的控制器名称是UserController,型号名称是User。 我想动态调用modelClass名称。谢谢..

2 个答案:

答案 0 :(得分:1)

您可以获得如下控制器名称:

$controllerName= $this->id;

您的模型可能是:

$modelName=ucfirst($controllerName);

然后,如下所示调用您的模型:

$model=new $modelName();

或者,

$allUsers=$model::model()->findAll();

请注意,我假设您的控制器名称为UserController且型号名称为User

答案 1 :(得分:0)

模型和控制器之间的关系纯粹是传统的,但是对于Yii2,您可以通过<table class="table table-striped border table-bordered table-hover success panel-body" id="datatable"> <thead> <tr class="tableheaders danger"> <th>Created at</th> <th>Updated at</th> <th>Teacher ID</th> <th>Name</th> <th><%= sort_link(@q, :email) %></th> <th><%= sort_link(@q, :Student_Alias) %></th> <th><%= sort_link(@q, :subject_type) %></th> <th>Grievance</th> <th>Penalty</th> <th colspan="3"></th> </tr> </thead> <tbody> <% @notes.each do |note| %> <tr> <td><%= note.created_at %></td> <td><%= note.updated_at.localtime %></td> <td><%= note.user_id %></td> <td><%= note.user.full_name %></td> <td><%= note.user.email %></td> <td><%= note.studentname %></td> <td><%= note.subject_type %></td> <td><%= note.grievance %></td> <td><%= note.penalty %></td> <td><%= link_to 'Show', note, class: 'btn btn-primary btn-xs' %></td> <% if note.user==current_user %> <td><%= link_to 'Edit', edit_note_path(note), class: 'btn btn-info btn-xs' %></td> <% end %> <% if current_user.admin %> <td><%= link_to 'Destroy', note, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger btn-xs' %></td> <% end %> </tr> <% end %> </tbody> </table> 来获取控制器内部控制器的“名称”:

id

此值返回控制器的小写名称,如果这与您的模型有关,则可以使用您需要的符号正确转换。