bugfix> php > 投稿

CakePHP3.6プロジェクトでは、TreeHelper メニューを作成します。

私からしてみれば (pages/index.ctp) 私が使う:

<?=$this->Tree->generate($pages,['alias'=>'title']); ?>

これにより、基本的な不一致リストが作成されます。

TreeHelperを使用すると、コールバック関数を使用してリストアイテム内の値を変更できます。

<?
$this->Tree->generate($pages,['alias'=>'title','callback'=>'myFunction']);
function myFunction($obj) {
    $id = $obj['data']['id'];
    $return = $this->Html->link('Edit',['action' => 'edit', $id]);
    $return .= $obj['data']['title'];
    return $return;
}
?>

HtmlHelperを使用したい(ie $this->Html->link )リンクを作成しますが、このエラーが発生します:

Using $this when not in object context

関数内でHtmlHelperを使用できるように解決策/回避策はありますか?

回答 1 件
  • グローバル関数の代わりに、匿名関数を使用します。

    $this->Tree->generate($pages, [
        'alias' => 'title',
        'callback' => function ($obj) {
            $id = $obj['data']['id'];
            $return = $this->Html->link('Edit',['action' => 'edit', $id]);
            $return .= $obj['data']['title'];
            return $return;
        }
    ]);
    
    

あなたの答え