2011-02-23 19 views
0

ビューを通して変数を渡すことに問題があります。しかし、最初のいくつかのコードKohana - ビュー内のビュー

// i enter the url http://localhost/my_projects/blog/index/index 
// classes/controller/index.php 
class Controller_Index extends Controller 
{ 
    protected $rendered_view; 

    public function before() 
    { 
     $this->rendered_view = View::factory('index') 
       ->set('head', View::factory('subpages/head') 
           ->set('title', 'Site title') 
        ) 
       ->set('nav', View::factory('subpages/nav') 
           ->set('title', 'Site title') 
        ) 
       ->set('header', View::factory('subpages/header') 
           ->set('h1', 'Header H1') 
        ) 
       ->set('sidebar', View::factory('subpages/sidebar') 
           ->set('h1', 'Header H1') 
        ) 
       ->set('content', View::factory('subpages/content') 
           ->set('h2', 'Header H2') 
           ->set('content', 'some content') 
        ) 
       ->set('footer', View::factory('subpages/footer') 
           ->set('footer', 'some footer') 
        ); 
    } 

    public function action_index() 
    { 
     $this->response->body($this->rendered_view); 
    } 
} 

、ビューインデックスに私は、デフォルトのビューに変数を渡す:

// views/index.php 
echo View::factory('default')->set('head', $head); 
echo View::factory('default')->set('nav', $nav); 
echo View::factory('default')->set('header', $header); 
echo View::factory('default')->set('sidebar', $sidebar); 
echo View::factory('default')->set('content', $content); 
echo View::factory('default')->set('footer', $footer); 

と私は、「エコー」の変数を試す表示ビューで試してみてください。

// views/default.php 
echo $head; 
echo $nav; 
echo $header; 
echo $sidebar; 
echo $content; 
echo $footer; 

そしてエラーをスローする:

ErrorException [ 2 ]: file_put_contents(/some_path/application/logs/2011/02/23.php): failed to open stream: Permission denied ~ SYSPATH/classes/kohana/log/file.php [ 81 ] 

もし私がそのようなものを書いたら:

// views/default.php 
include Kohana::find_file('views', 'default'); 

それは有効です;

+1

ただ、ノート、書き込み可能である - 'action_indexあなた' before'のコードがaction_index() ''に移動させなければならない、と() '〜'の後ろに() '。そして 'parent :: before()'/'parent :: after()'が忘れてはいけません! – biakaveron

+0

しかし、私はビューのデフォルト値を設定したかったのですが、他のメソッドで変更する必要がある場合は変更されるため、さまざまなメソッドで同じ値を設定する必要はありません。 – PaulP

答えて

1

のchmod 777 /some_path/application/logs/2011/02/23.phpファイルとすべてのディレクトリ/some_path/application/logs/再帰的に

UPD:

多分

// views/index.php 
echo View::factory('default') 
->set('head', $head) 
->set('nav', $nav) 
->set('header', $header) 
->set('sidebar', $sidebar) 
->set('content', $content) 
->set('footer', $footer); 
+0

非常に奇妙なので、デフォルトビューで変数を見ることができません:ErrorException [Notice]:未定義の変数:nav | ErrorException [Notice]:未定義の変数:head – PaulP

+0

@paulp、投稿を更新しました – delphist

+0

ありがとうございました。私はまだこれを学んでいる:D。 – PaulP

0

何が起こっているがKohanaのが例外をスローし、エラーをログに記録しようとすることができますが、されていますログファイルを保存しないでください。

確認/アプリケーション/ログを確認しますが(755、または777一部のサーバー上)

+0

私はすでにそれを行いましたが、いくつかのエラーをスローします:ErrorException [Notice]:未定義の変数:nav | ErrorException [Notice]:未定義の変数:head – PaulP

関連する問題