我对Yii框架有疑问。 我想使用控制器名称调用当前的modelClass名称。 例如,我的控制器名称是UserController,型号名称是User。 我想动态调用modelClass名称。谢谢..
答案 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
此值返回控制器的小写名称,如果这与您的模型有关,则可以使用您需要的符号正确转换。