- app/Controller/AppController.php
<?php 'Auth' => array( 'authenticate' => array( 'Form' => array( 'userModel' => 'User', 'fields' => array( 'username' => 'user_id', 'password' => 'password' ), 'scope' => array('add_value' => 0) ) ), 〜 省略 〜
こんな感じで使えばいいらしいお(^ω^ = ^ω^)
だがしかし、人は知識を追求したい生き物(多分)
この値を動的に出来ないかなと思ったわけですよ。
やってみた。
特定のIPアドレスだったら
- app/Controller/AppController.php
<?php 'Auth' => array( 'authenticate' => array( 'Form' => array( 'userModel' => 'User', 'fields' => array( 'username' => 'user_id', 'password' => 'password' ), 'scope' => array('ipaddress' => $_SERVER['SERVER_ADDR']) ) ), 〜 省略 〜
エラーです。
メンバ変数内で動的の値はアウト
じゃあどうすれば?
試行錯誤の結果、こうしたら動きました。
- app/Controller/AppController.php
<?php 'Auth' => array( 'authenticate' => array( 'Form' => array( 'userModel' => 'User', 'fields' => array( 'username' => 'user_id', 'password' => 'password' ), 'scope' => array('ipaddress' => IP_ADDRESS) ) ), 〜 省略 〜
<?php define('IP_ADDRESS', $_SERVER['SERVER_ADDR']);
定数にしちゃう!
読み込む順番も以前の記事から確認しても問題なさそうです。
/app/Config/const.php // constここ
/lib/Cake/Core/CakePlugin.php
/lib/Cake/Routing/Dispatcher.php
/lib/Cake/Event/CakeEventListener.php
/lib/Cake/Network/CakeRequest.php
/lib/Cake/Network/CakeResponse.php
/lib/Cake/Event/CakeEvent.php
/lib/Cake/Event/CakeEventManager.php
/lib/Cake/Routing/Filter/AssetDispatcher.php
/lib/Cake/Routing/DispatcherFilter.php
/lib/Cake/Routing/Filter/CacheDispatcher.php
/lib/Cake/Routing/Router.php
/app/Config/routes.php
/lib/Cake/Routing/Route/CakeRoute.php
/lib/Cake/Config/routes.php
/lib/Cake/Routing/Route/PluginShortRoute.php
/app/Controller/MainsController.php // これは自作のController
/app/Controller/AppController.php // AppController ここ
これはいい方法なのか、バッドノウハウなのかわかりませんが、とりまこれでできました。