codeigniter の MVC 構造のモデルとビュー フォルダーを、通常のパスに関係なく別の場所に配置できますか?
application/views
application/models
他の場所に、言ってみましょう
abc/views
pqr/models
プロジェクトフォルダの外。可能であれば、どうすればそれを達成できますか。
前もって感謝します
codeigniter の MVC 構造のモデルとビュー フォルダーを、通常のパスに関係なく別の場所に配置できますか?
application/views
application/models
他の場所に、言ってみましょう
abc/views
pqr/models
プロジェクトフォルダの外。可能であれば、どうすればそれを達成できますか。
前もって感謝します
CodeIgniter の現在の安定版には、 models
andパスをカスタマイズする機能はありません(CI 3.x では、 and と同様にパスを変更できます)。views
view
application
system
views
ただし、典型的なおよびmodels
フォルダーの外にファイルをロードできます。
ファイルへのパスは相対です。../
したがって、パスの 1 つ上のレベルに移動するために使用できます。
たとえば、 のabc
近くapplication
にフォルダが配置されている場合は、 を使用../../abc
してそのフォルダに到達する必要があります。
以下の例を見てください。
モデル:
class Model_name extends CI_Model {
public function baz($value='')
{
return $value;
}
}
コントローラ:
class Foo extends CI_Controller {
public function bar()
{
$this->load->model('../../pqr/models/model_name');
$data['var'] = $this->model_name->baz('Yes It Works!');
$this->load->view('../../abc/views/view_name', $data);
}
}
意見:
<?php echo $var; ?>
サンプルのフォルダ構造は次のとおりです。
application
system
pqr
/models
/model_name.php
abc
/views
/view_name.php
補足として:pqr
またはabc
ディレクトリへの直接アクセスが制限されていることを確認してください。.htaccess
の内容を含むファイルをそれらの中に追加しますDeny from all
。
「アプリケーション」フォルダー外のモデルとビューをカスタマイズするには、次の簡単な手順に従います。
My_Loader.php
「application/core」ディレクトリにファイルを作成します次のコードをカスタムにコピーしますMy_Loader.php
class MY_Loader extends CI_Loader {
function mymodel($model, $folder = '',$vars = array(), $return = FALSE) {
array_push($this->_ci_model_paths, "");
parent::model($model);
}
function myview($folder, $view, $vars = array(), $return = FALSE) {
$this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH . '../' . $folder . '/' => TRUE));
return $this->_ci_load(array(
'_ci_view' => $view,
'_ci_vars' => $this->_ci_object_to_array($vars),
'_ci_return' => $return
));
}
$this->load->mymodel('folder/model');
ビューについては、
$this->load->myview('views','view_dir/view-php-file', $data);
ビューとモデルを別の場所に移動できるかどうかはわかりませんが、アプリケーション フォルダーの場所を選択した場所に変更できます。
アプリケーション ディレクトリを別の場所に移動し、index.php ファイルを開き、$system_folder 変数と $application_folder 変数に新しいパス値を設定します。
参照: http://ellislab.com/codeigniter/user-guide/installation/index.html
これが役に立てば幸いです。