私は中にいます"PostsTable.php"画像ファイルを処理するためのフォームデータを取得しようとしています。
CakePHP 2では、以前は次のことを行っていました。
public function beforeSave($options = array())
{
if(!empty($this->data['Post']['picture']['name'])...
誰かがケーキ3でこれを説明することができます。
beforeSave
Cake\ORM\Table::beforeSave(Event $event, Entity $entity, ArrayObject $options)
?
[〜#〜]追加[〜#〜]
このコードスニペットを試して、このフィールドをテストとしてデータベースに保存できるかどうかを確認しましたが、beforeSaveが無視されているようです。
public function beforeSave($options)
{
if(!empty($entity->pic1['name']))
{
$entity->pic1 = 'jus a test';
}
ありがとう
関数の定義から始めます。
_Cake\ORM\Table::beforeSave(Event $event, EntityInterface $entity, ArrayObject $options)
_
CakePHPは関数を自動的に呼び出すので、これが呼び出される方法です。関数定義と同じように関数を作成します。
_// In PostsTable.php
public function beforeSave($event, $entity, $options) {
}
_
送信されているデータがわからない場合は、CakePHPのdebug()
関数を使用してください。
_ debug($event); debug($entity); debug($options);
_
_$entity
_でデータを見つけたら、それを使用してデータに対して実行したいことを実行します。
_ if (!empty($entity->picture['name'])) { ...
_
これが私が使用した例です:
use Cake\Event\Event;
public function beforeSave(Event $event)
{
$entity = $event->getData('entity');
if(!empty($entity->picture['name']){
// your action here
}
}