cakePHP4でテーブルのデータを更新するにはどうすればいいんだろう…
こんな疑問を解決します。
この記事を最後まで読むことで、
- データを更新できる
事前にcompaniesテーブル(id, company_code(integer), company_name(string))を用意します。
更新前
id=3のcompany_codeとcompany_nameを更新します。
更新後
開発環境
PHP8
cakePHP4
【関連記事】
・cakephp4でDBのデータを取得
・cakephp4テーブルにデータを登録
・cakephp4でテーブルのデータを削除
ココナラと似てるサイト比較11選!【2023年最新版】
この記事ではココナラに似てる副業サイトを11こ紹介しています。 今すぐスキルをお金にするなら、記事で気になったサービスに登録してみましょう。 本記事のゴール ココ…
転職におすすめなサイト11選【リモート・フリーランスも対象】
転職におすすめなサイトが知りたいなぁ… 転職エージェントによって相性があります! この記事では、フリーランスの方でも利用できる転職におすすめなサイトを紹介しま…
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
Contents
データの更新にも登録と同じsaveメソッドが使える
データの更新は以下のようにかけます。
<?php
declare(strict_types=1);
namespace App\Controller;
use Cake\ORM\TableRegistry;
/**
* Companies Controller
*
* @property \App\Model\Table\CompaniesTable $Companies
* @method \App\Model\Entity\Company[]|\Cake\Datasource\ResultSetInterface paginate($object = null, array $settings = [])
*/
class CompaniesController extends AppController
{
public function initialize(): void
{
parent::initialize();
//companiesのDBを指定
$this->companies = TableRegistry::get('Companies');
}
/**
* テーブルのデータを更新する処理
*/
public function update()
{
$id = 3;
// getメソッドで、companiesテーブルから特定のデータを抽出。ここでは、id=3のデータを取得
$company = $this->companies->get($id);
// dd($company)
/**
* dd($company)でデバッグした結果
*/
// object(App\Model\Entity\Company) id:0 {
// 'id' => (int) 3
// 'company_code' => (int) 3
// 'company_name' => 'カモメ商業'
// '[new]' => false
// '[accessible]' => [
// 'compnay_code' => true,
// 'compnay_name' => true,
// ]
// '[dirty]' => [ ]
// '[original]' => [ ]
// '[virtual]' => [ ]
// '[hasErrors]' => false
// '[errors]' => [ ]
// '[invalid]' => [ ]
// '[repository]' => 'Companies'
// }
$company->company_code = 200;
$company->company_name = "カモメのススメ合同会社";
// データの更新
$this->companies->save($company);
}
}
saveOrFailメソッドとtry catchを使えばより安全にデータを更新できる。もし例外があれば例外処理を投げてくれる。
/**
* テーブルのデータを更新する処理
*/
public function update()
{
$id = 3;
// getメソッドで、companiesテーブルから特定のデータを抽出。ここでは、id=3のデータを取得
$company = $this->companies->get($id);
// dd($company)
/**
* dd($company)でデバッグした結果
*/
// object(App\Model\Entity\Company) id:0 {
// 'id' => (int) 3
// 'company_code' => (int) 3
// 'company_name' => 'カモメ商業'
// '[new]' => false
// '[accessible]' => [
// 'compnay_code' => true,
// 'compnay_name' => true,
// ]
// '[dirty]' => [ ]
// '[original]' => [ ]
// '[virtual]' => [ ]
// '[hasErrors]' => false
// '[errors]' => [ ]
// '[invalid]' => [ ]
// '[repository]' => 'Companies'
// }
$company->company_code = 100;
$company->company_name = "カモメのススメ東京中央支社";
// データの更新
try {
$this->companies->saveOrFail($company);
} catch (\Cake\ORM\Exception\PersistenceFailedException $e) {
echo $e->getEntity();
}
}
ココナラと似てるサイト比較11選!【2023年最新版】
この記事ではココナラに似てる副業サイトを11こ紹介しています。 今すぐスキルをお金にするなら、記事で気になったサービスに登録してみましょう。 本記事のゴール ココ…
転職におすすめなサイト11選【リモート・フリーランスも対象】
転職におすすめなサイトが知りたいなぁ… 転職エージェントによって相性があります! この記事では、フリーランスの方でも利用できる転職におすすめなサイトを紹介しま…
休日で空いた時間の暇つぶしを探せるアプリを公開しています。
コメント