• 締切済み

CakePHP 1.3 の $uses は?

お尋ねします。 CakePHP 1.3 の $uses は extends ですか? モデルの中からは、コントローラのメソッドは、やはり使えませんか?

みんなの回答

  • hamuty
  • ベストアンサー率50% (2/4)
回答No.1

モデルからはコントローラを参照できないはずです。 私も以前にCakePHP1.3で開発をしていて、モデルからコントローラのparamsフィールドを参照しようとして結局できなかった記憶があります。 cakeの規約に従わなければ、強引にインスタンスを生成することはできると思いますが・・・。 以下に参考になりそうなURLを貼っておきました。 http://blog.xao.jp/blog/cakephp/how-to-access-to-a-variaty-of-objects/#toControllerObject http://stackoverflow.com/questions/7598675/use-controller-method-from-model-class-in-cakephp よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CakePHPのコントローラの作成

    PHP初心者です。 CakePHPをインストールし試しにTestControlerを作成したのですが、ページが開きません。 PageNotFoundになります。 考えられる原因が分かれば教えて下さい。 【やったこと】 ・ [CakePHP root]\app\Controller に TestController.php を作成。 <?php App::uses('AppController', 'Controller'); class TestController extends AppController { } ・ URLにアクセス http://[CakePHP root]/Test ⇒ Not Found http://[CakePHP root]/test ⇒ Not Found http://[CakePHP root]/app/webroot/index.php?url=test ⇒ CakePHPのindex.phpが表示される。 http://[CakePHP root]/app/webroot/index.php?url=Test ⇒CakePHPのindex.phpが表示される。 以下のサイトを参考にしました。mod_rewriteが動いていない可能性がある ということなので、URL直接指定もしてみましたがダメでした。 http://codezine.jp/article/detail/768?p=2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • CakePHPでヘルパーが使えません

    CakePHPを使用して開発を行っています。 app/views/helpers/common_lib.php に、class CommonLibHelper extends AppHelper としてヘルパークラスを作り、コントローラーの$helpersにarray('CommonLib')を記述しました。 ビューファイルにて、$common_lib->function() として、ヘルパーで定義したメソッドを呼ぶと、 undefined variable: common_libと言われてしまいます。どうしてか教えていただけませんか? クラス名やファイル名は合っていると思うのですが・・・。 CakePHPのバージョンは、1.3.6です。

    • ベストアンサー
    • PHP
  • モデルのメソッド名がSQLと解釈されます

    CakePHPで開発をしています。 モデルにメソッドを定義しコントローラーで呼び出したところ、メソッド名が SQLと解釈されるという現象に困っています。 モデル class Enquete extends AppModel {  var $name = 'Enquete';  function tyoityoi() {  } } コントローラー class EnquetesController extends AppController {   function index() {    $this->Enquete->tyoityoi();   } } こういう使い方をしているのですが、SQLシンタックスエラーが出てしまい、 ログに吐き出したSQLを見ると、tyoityoiがSQL文と解釈されてしまっていました。 同じコントローラーで、Enqueteモデルのsave()めそっどを呼び出していますが、 そちらは正常動作しています。どなたか原因の分かる方いらっしゃいませんか? もしくは、モデルのメソッドを実行するときに動くCakePHPのコードの位置を、 教えていただけませんか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • Cakephp AppControllerについて

    CakePHPにて、 AppControllerクラスに処理を記述しようと思い、 app/app_controller.php を設置したのですが、 app/app_controller.php がどうしても呼び出されません。 色々調べてるのですが、どうしても原因が分かりません。 原因等分かる方がおりましたら教えて頂けますでしょうか? ---------------------- ■cakephpのバージョンは1.3です。 ■app/app_controller.phpの中身は↓です。 class AppController extends Controller { function __construct() { parent::__construct(); } function beforeFilter() { echo "test"; ←これが呼ばれない。 } } ----------------------

    • ベストアンサー
    • PHP
  • cakephp動的アソシエーションについて

    お世話になっております。 cakephpでアソシエーションをコントローラ側で設定しようとしたところ $this->Model->bindModel(array(‘hasOne’=>array(‘Model_3′))); このような形にされてるのが多いのですが $this->Model->hasMany = array('Model' ); こちらのようにコントローラー側で直接変数に モデル設定してはいけないのでしょうか?

    • ベストアンサー
    • PHP
  • CakePHPでバリデート

    質問です。 CakePHPでバリデート処理を行っているのですが、 ちょっとつかめない箇所があります。 ビュー側でformヘルパーを用いてフォームを作っていますが コントローラ側で $this->Model ->set($this->data); $this->Model->validates(); でバリデートが行われると思いますが 上記二つの式のうち 実際にバリデート処理を行っているのはどちらのしきなのでしょうか? フォームの内容がバリデートにひっかからずに判定された場合 $this->Model->validates()でtrueが 返ると思います。 これはvalidatesメソッド内で判定してそのままtureを返しているということでしょうか?

    • ベストアンサー
    • PHP
  • cakephp2の多言語化について

    cakephp2でシステムの多言語化について勉強しております。 コントローラ、モデル、ビューにて__()メソッドを使用すると自動で多言語化してくれるのは 確認しました。 しかし、スクリプト内でアラート等のメッセージまで対応するとなるとどうすればよいか わからなくなりました。 ご存知の方いらっしゃいましたら宜しくお願いします。 <? $this->append('script'); ?> <script type="text/JavaScript"> <!-- $(document).ready(function(){ alert("__('削除')"); }); --> </script> <? $this->end(); ?>

    • ベストアンサー
    • PHP
  • CakePHPでの自作関数保存場所

    PHP 5.0.4 CakePHP Version1.1 CakePHPのモデル内でコールバック関数として登録したい関数を作成したのですが、その関数をどこに記述してよいか分かりません。今のところ下記のようにモデル内のクラス定義の外に定義しています。 <?php class Hoge extends AppModel { var $name = "Hoge"; function gethoge(){ ・・・・ return array_map("hoge_callback",$hoge_array); } } function hoge_callback(){ ・・・・ } ?> ただこれだと”hoge_callback()”を他のモデルでも使いたい時にそのモデル内でも記述しないといけません。どこか1箇所にまとめて置いてきそれを参照するようなスマートな方法はないでしょうか(できればモデル内だけでなくコントローラやビューでも使えるとうれしいです)?「CakePHPでは自作関数は”ここ”に登録する」といったようなルールがありましたらご教示頂ければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • CakePHP Undefined index

    CakePHP(cake_1.2.1)にて、ユーザーログイン機能を作成しようとしてます。 class UsersController extends AppController{ var $name = 'Users'; var $uses = array('User'); // Userモデルを使用 var $needAuth = true; // ログイン必須のフラグ /* * ログインページ */ function login() { // ページタイトルの設定 $this->pageTitle = 'Web-local.community「local.SNS」'; // データが送られてきたら if(!empty($this->data)){ // パスワードを暗号化 $this->data['User']['pwd'] = md5($this->data['User']['pwd']); // 入力された[id]と[pwd]がデータベースにある場合のみ[$user_data]に値が入る $user_data = $this->User->findByEmailAndPwd($this->data['User']['email'], $this->data['User']['pwd']); ・・・ というコントローラーをWebサイトの先人様のを参考にして試作しているのですが、あらかじめ作成したusersテーブルに登録しておいたユーザーのメールアドレス、パスワードを入力して、ログインボタンを押すと、 Notice (8): Undefined index: User [APP\controllers\users_controller.php, line 18] Notice (8): Undefined index: email [APP\controllers\users_controller.php, line 20] というエラーが出て困ってます。"User"、"email"は、知りませんと言っているのでしょう。 モデル等の宣言の箇所で、 // var $name = 'Users'; // var $uses = array('User'); // Userモデルを使用 あるいは、 // var $name = 'Users'; var $uses = array('User'); // Userモデルを使用 あるいは var $name = 'Users'; // var $uses = array('User'); // Userモデルを使用 とコメントアウトしても、前記エラーは変わりません。Webをいろいろ検索しても、解決策が見当たらず、投稿させていただきました。何か、設定が抜けているのでしょうか?どなたかすみませんが、教えてください。

  • cakephp エラーハンドリングができません

    cakephpを利用しているシステムで、2種類のエラーを作っておいてcontrollersの呼び出しで振り分けたいと思いますがうまくできません。 マニュアルページ(http://book.cakephp.org/ja/view/154/Error-Handling)を参考に、 app/app_error.phpを以下のように作成しました。 ((1)エラー:error(2)エラー:errorsta) ----------------------------------------------------------------- <?php class AppError extends ErrorHandler{ function error(){ $this->controller->viewPath = 'errors'; $this->__outputMessage('error'); } function errorsta(){ $this->controller->viewPath = 'errors'; $this->__outputMessage('errorsta'); } } ?> ----------------------------------------------------------------- 上記内容で、メソッドerrorは実行できるのですが、errorstaが一向に動いてくれず、404扱いになってしまいます。 app/app_error.php以外にも設定が必要なものがあるのでしょうか?

    • 締切済み
    • PHP