FuelPHP ◇ oil generate admin を一度実行した後、もう一度実行するとエラーになる
oil generate adminは、1回目ならオプション無しでエラーとなりませんが、2回目以降エラーとなってしまう。
理由はbase.php等の共通で使うファイルが1回目で作成され、2回目実行時に重複してしまう為。
対応は、2回目以降の実行時はオプションに-f:上書き、もしくは-s:スキップを指定する。
FuelPHP ◇ oil generateで自動生成した画面でエラー時のメッセージが赤枠表示にならない
FuelPHP1.7.1の段階で、oil generateで自動生成した画面でエラーメッセージが赤枠表示にならない。
理由はTwitter bootstrap 3からcssのalert-error定義が削除になった為。
対応は自動生成した後は、/app/views/template.php(もしくは/app/views/admin/template.php)のalert-errorをalert-dangerに変更する。
自動生成前なら/packages/oil/views/scaffolding/template.php(もしくは/packages/oil/views/admin/template.php)のalert-errorをalert-dangerに変更する。
但し、FuelPHP1.8-devには修正が取り込まれているので、次期リリース時はなおっているはず。
FuelPHP ◇ 独自の設定ファイルを利用する
設定ファイルを作成
php oil g config sample test:test1
⇒/app/config/sample.php の設定ファイルが出来る(直接ファイルを作ってもよい)
設定ファイルを読み込み
常に読み込む
- 通常
1. 設定 ⇒ config.phpのalways_loadのconfigを設定
'config' => array('sample'),
2.使用する箇所
$val = Config::get('sample.test'); // test1が取得される
- グループ無しを設定の場合
'config' => array('sample' => null), //config.phpの設定とマージされる
$val = Config::get('test'); // test1が取得される
- グループ名を設定した場合
'config' => array('sample' => 'group1'),
$val = Config::get('group1.test'); // test1が取得される
使用するときのみ読み込む
- 通常
Config::load('sample', true); //config.phpの設定とマージされる
$val = Config::get('sample.test'); // test1が取得される
- グループ無しを設定の場合
Config::load('sample');
$val = Config::get('test'); // test1が取得される
- グループ名を設定した場合
Config::load('sample', 'group1');
$val = Config::get('group1.test'); // test1が取得される
Bootstrap 3 ◇ form項目の横幅を指定する
formの項目にはform-controlを指定するが、これを指定すると横幅の指定が効きかない(width:100%になるため)
なので、横幅を指定したい場合は、上位のタグで指定する
<div class="col-md-6">
<input class="form-control" name="word" type="text" id="word" />
</div
FuelPHP ◇ ファイルアップロード処理を実装する
設定ファイルを配置
/fuel/core/config/upload.phpを/fuel/app/config/にコピーする
⇒アップロードで共通の設定事項があればここで設定しておく
アップロードエラーの日本語ファイルを配置
/fuel/core/lang/en/upload.phpを/fuel/app/lang/jaにコピーする
⇒日本語になおす
php.iniを修正
extension=php_fileinfo.dllを有効化
その他php.iniの設定はこちらのサイトとかを参照 ⇒ PHPまとめ アップロード
Controllerを作成
// 設定(設定ファイルで設定しなかった個別の設定をセット)
$config = array(
'path' => 'files',
);
// アップロード実行
Upload::process($config);
// エラーを検証
if (Upload::is_valid())
{
// アップロードファイルを保存
Upload::save();
}
// エラーの場合は、下記にエラー情報が入っている
// Upload::get_errors()
// 正常処理の場合は、下記にファイル情報が入っている
// Upload::get_files()
viewを作成
<?php echo Form::open(array('name'=>'upload','enctype'=>'multipart/form-data','method'=>'post')); ?>
<?php echo Form::hidden('MAX_FILE_SIZE', '1500', array('id' => 'file_size')); ?>
<?php echo Form::file('upload',array('class'=>'col-md-4')); ?>
<?php echo Form::submit('submit', '保存', array('class' => 'btn btn-primary')); ?>
<?php echo Form::close(); ?>