Cakephp エラー対処法 warning: missing argument ~ 

warning: missing argument ~ というのは、

定義された引数と、呼び出す引数が違いますよというエラーです。

例えば、

 

と定義して、呼び出すときに

だとエラーになってしまいます。

こういうときは、初期値をにすればいいでしょう。

Cakephp Modelのテストケース作成

あるユーザーが職業選択ができて、そのラジオボタンを削除したり追加したりできるような仕様ががあった場合のテストケースを作成しました。そこでcakephp2のModelにtestSave()とtestDelete()を作成しました。

Fixtureに登録しているユーザーデータに基づいて記述してみました。

public function testSave(){

// もともとid=4まである、4件Fixtureに書いてある
$result = $this->MstJobType->find(‘count’);
$this->assertEquals(4, $result);

// idが4番まであったら、次に登録するデータは5番になるはず
// まだ登録していないので5番のデータが取れないチェック
$result = $this->MstJobType->find(‘first’, array(
‘conditions’ => array(
‘MstJobType.id’ => 5,
),
‘contain’ => false
));
$expected = array(); // 結果とれない!
$this->assertEquals($expected, $result);

// 5番になるデータを登録する
$update = array(
// MstJobTypeに登録するための項目(画面と同じだからadd.ctp/edit.ctpをチェック)
‘MstJobType’ => array(
‘name’ => ‘公務員’,
‘slug’ => ‘civilworker’,
‘deleted’ => 1
)
);
$this->MstJobType->create(); // 初期化(おまじない)
$this->MstJobType->save($update); // 保存

// 5番のデータが作成されたので、データが取れる
$result = $this->MstJobType->find(‘first’, array(
‘conditions’ => array(
‘MstJobType.id’ => 5,
),
‘contain’ => false
));
$expected = array(
‘MstJobType’ => array(
‘id’ => 5,
‘slug’ => ‘civilworker’,
‘deleted’ => true,
‘name’ => ‘公務員’,
)
);
unset($result[‘MstJobType’][‘created’]); // 作成時間:実行した時間が登録されちゃうと比較できないので、検索結果から消しておく
unset($result[‘MstJobType’][‘modified’]); // 更新時間:これも同じ
$this->assertEquals($expected, $result);

// テーブルの中身が1件増えたので5件になってる
$result = $this->MstJobType->find(‘count’);
$this->assertEquals(5, $result);
}

/**
* testDelete
* @return void
*/
public function testDelete() {
// 今あったものが無くなる(削除される)テスト
// 削除されていないデータがテーブルの中に2件ある(Fixtureに記載されているデータの件数)
$result = $this->MstJobType->find(‘count’, array(
‘conditions’ => array(
‘MstJobType.deleted’ => false
)
));
$this->assertEquals(2, $result);

// Fixtureに記載されているあるデータが取得できるかチェック
$result = $this->MstJobType->find(‘first’, array(
‘conditions’ => array(
‘MstJobType.id’ => 3,
)
));
$expected = array(
‘MstJobType’ => array(
‘id’ => 3,
‘name’ => ‘会社員’,
‘slug’ => ‘employee’,
‘created’ => ‘2015-02-22 15:35:03’,
‘modified’ => ‘2015-02-22 15:35:03’,
‘deleted’ => false
),
‘User’ => array()
);
$this->assertEquals($expected, $result);

// このもともとあった↑データを削除する
$this->MstJobType->id = 3;
$this->MstJobType->delete();

// 今削除されたものがちゃんと取得できなくなったかのチェック
// 最初に実行したfindと同じ条件で再度チェックする
$result = $this->MstJobType->find(‘first’, array(
‘conditions’ => array(
‘MstJobType.id’ => 3,
)
));
$expected = array(
‘MstJobType’ => array(
‘id’ => 3,
‘name’ => ‘会社員’,
‘slug’ => ‘employee’,
‘created’ => ‘2015-02-22 15:35:03’,
‘deleted’ => true
),
‘User’ => array()
);
unset($result[‘MstJobType’][‘modified’]); // 更新時間:削除されたときの実行時間が登録されてしまうので、消しておく
$this->assertEquals($expected, $result);

// 削除されていないデータは、テーブルの中に1件になった
$result = $this->MstJobType->find(‘count’, array(
‘conditions’ => array(
‘MstJobType.deleted’ => false
)
));
$this->assertEquals(1, $result);
}

【注意点】

*削除されていないデータ、つまりdeleted=>falseの数を変更すること。
*削除対象のデータに対して ’User’ => array();を追加することで、
その職業で登録されているユーザーデータも削除されるという感じで
必ず記述する(array()の中は何も書かなくていい)。

*実際に削除されたということを記述するにはdeleted=>falseから
deleted=>trueに変更して、現在の削除されていないデータ(deleted=>false)は
1件になったので$this->assertEquals(1, $result);と記述する。

phpにて分岐を作成するためのメモ書き。(2パターン)

if文作成の時には『if』『elseif』『endih』が大体セット。
ifの時、これ。そうじゃない場合をelseif。定義が終わりだからendif。

分岐に使う命令文はこちらを参照。
http://www.clas.kitasato-u.ac.jp/~yamamoto/c06.html

これがうまく動くかテストシステムを作成しなければならないので、起こりうる問題として・・・
・誕生日を入力しないでチェックも入れないでエラーが起きないか
・誕生日を入力しないでチャックを入れてエラーが起きないか
・誕生日を入力しないでチェックを入れないでコメントを書いてエラーが起きないか
・誕生日を入力してチェックを入れないでコメントを書いてエラーが起きないか
・誕生日を入力してチェックを入れてコメントを書いてエラーが起きないか

明日、確認。

ジャックナイフストレッチ~10秒体操~

みなさん。特にパソコンと日々戦っているみなさん。腰の具合は大丈夫ですか?

何十時間も座りっぱなしだと腰に重力がかかり、神経を圧迫して腰痛の原因になってしまいます。

しかし、最近の研究から実は腰痛の原因は’腰’ではなく’太もも裏側’が硬直状態であるからだといわれています。今日は腰痛予防の一つである。ハムストリング体操=”ジャックナイフストレッチ”の方法をご紹介します。

~ジャックナイフストレッチ~

【順序】

ジャックナイフストレッチ

①足を肩幅に広げてしゃがみ込み、膝と胸をつけた体勢になります。

②足首をつかみ、膝と胸が離れないように注意しながら足を伸ばします。

③これ以上足が伸びないポイントで10秒間保持します。

④上記①~③の動作を3セットから5セットおこないます。

【ジャックナイフストレッチの効果】

・腰痛予防、改善。
・身体の柔軟性アップ。
・お尻のヒップアップ効果。
・骨盤が動きやすくなり腰への負担が減り、自然と背筋が伸びる。
など

*ただ、このストレッチ法も万能ではありません。

前屈した時に腰が痛い人や、ヘルニアを患っている人は、逆に悪化させる場合があるそうですから、このような人はやらない方が良いそうです。

ふとももをやわらかくしましょう♪

簡単なので、是非試してみてください♪