CakePHP3 Helperから任意のModelを呼ぶ
CakePHP3
HelperからModelを呼び出す方法
(HelperでloadModelをできるようにする方法
1. 適当なHelperをつくる
ex. src/View/Helper/UsersHelper.php
2. 普通にHelperを書く
<?php
namespace Cake\View\Helper;use Cake\View\Helper;
class UsersHelper extends Helper{
public function exFunction(){
}}
3. 2で書いたHelperでController, Shellクラスで使っているようにloadModelを使えるようにする
赤字がloadModelのために追加したコード
<?php
namespace Cake\View\Helper;use Cake\View\Helper;
use Cake\Datasource\ModelAwareTrait;
class UsersHelper extends Helper{
use ModelAwareTrait;
public function exFunction(){
$this->modelFactory('Table', ['Cake\ORM\TableRegistry', 'get']);
$this->loadModel('Users');
}
}
以上のやり方でHelperからModelを呼べるようになった.
同様のやり方で,ViewからModelを呼べるようにもできそう.
.ctpからModelを呼んだほうがすっきりするかもしれないが,それはせずにHelperに頼ったほうがよいだろうということで.