MAMPのhtdocsにcakephpを、ドットインストールのcakephp3入門参考にしてインストールしましたが、インストールされたのは、
最新のcakephp4.2.3でした。
以下のサイトを参考
リンク内容
にcakephp4の
前提・実現したいこと
ここに質問の内容を詳しく書いてください。
ドットインストールの動画を参考にして、いくつか、コードを書いて、確認でMAMPのLocalhostにアクセスすると、エラーがでます。
参考動画では、IPアドレスのあるページで開発されるので、MAMPのLocalhost以外のIPアドレスを取って勉強したいです。
発生している問題・エラーメッセージ
Fatal error: Declaration of App\Model\Table\PostsTable::initialize(array $config) must be compatible with Cake\ORM\Table::initialize(array $config): void in /Applications/MAMP/htdocs/myblog/src/Model/Table/PostsTable.php on line 7
該当のソースコード
<?php 1 namespace App\Model\Table; 2 use Cake\ORM\Table; 3 class PostsTable extends Table 4 { 5 public function initialize(array $config) 6 { 7 $this->addBehavior('Timestamp'); 8 } 9 } こちらが、ドットインストールのPostsTable.php /** * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * @link http://cakephp.org CakePHP(tm) Project * @since 0.2.9 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ namespace App\Controller; use Cake\Controller\Controller; use Cake\Event\Event; /** * Application Controller * * Add your application-wide methods in the class below, your controllers * will inherit them. * * @link http://book.cakephp.org/3.0/en/controllers.html#the-app-controller */ class AppController extends Controller { /** * Initialization hook method. * * Use this method to add common initialization code like loading components. * * e.g. `$this->loadComponent('Security');` * * @return void */ public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); } /** * Before render callback. * * @param \Cake\Event\Event $event The beforeRender event. * @return void */ public function beforeRender(Event $event) { if (!array_key_exists('_serialize', $this->viewVars) && in_array($this->response->type(), ['application/json', 'application/xml']) ) { $this->set('_serialize', true); } } }
試したこと
Cakephp4, addBehavior('Timestamp');などでググったところ、
[https://s4-ba.hatenablog.jp/entry/2019/12/24/123854]がほぼ、同じように思いますが、この先をどのように対応してよいかわかりません。
補足情報(FW/ツールのバージョンなど)
MacOS Catalinaに
MAMPのPHP 7.3.11
Cakephp4.2.3
Composer version 2.0.9 2021-01-27 最新の状態です。
回答1件
あなたの回答
tips
プレビュー