2017-05-14 13 views
0

私は、 'index'と 'add'という2つのアクションを持つ 'Student'というコントローラを持っています。 アクションごとに異なるCSSファイルをロードします。これまで私は試みたが、私は、HTMLヘルパーをインポートし、それのオブジェクトを作成し、そのCSSメソッドを呼び出しました。私がそれを実行するとき、それはどんなエラーも投げておらず、期待される結果を示していません。手段、それは私のビューで動的にCSSファイルを読み込んでいない..どのように私は動的にコントローラから別のビューでCSSファイルを読み込むことができますか?コントローラの各アクションにCSSファイルを動的に読み込む方法は?

コード: -

<?php 

App::import('Helper','Html'); 

class StudentController extends AppController 
{ 
    public function index() 
    { 
//  $current_controller = $this->params['controller']; 
//  echo $current_controller; 

     //$view=new View(new Controller($current_controller)); 

     //$Html=new HtmlHelper($view); 
     $Html=new HtmlHelper(new View(null)); 
     //$html=new HtmlHelper(new View()); 
     $Html->css('cake.generics'); 

     //echo ; 
     //$this->Html->css("cake.generics"); 
    } 

    public function add() 
    { 
//  $current_controller = $this->params['controller']; 
//  echo $current_controller; 

     $html=new HtmlHelper(new View(null)); 
     $html->css("mystyle.css"); 

    } 

} 

答えて

1

それがあなたのデフォルトのレイアウトファイルで、このファイルを追加した後も、同様ビューでdefault_layout.ctpをdefault_assets.ctp

などの表示>要素のグローバルレイアウトファイルを作成することができます>レイアウトフォルダ

と後

public function index(){ 
$this->layout = "default_layout"; 
} 
1

あなたはビューのファイルなどでそれを行うことができます

//in your View/Students/add.ctp 
$this->Html->css('yourstyle', array('block' => 'yourStyle')); 

//in your layout file 
echo $this->fetch('yourStyle'); 

私はそれがこのように働いてしまったのjsファイル

// in your view 
$this->Html->script('yourjs', array('block' => 'yourJs')); 

//in your layout file 
echo $this->fetch('yourJs'); 
+0

あなたの答えはコントローラのアクションからcss/jsを追加することに関するものではありませんが、しかし、自分のコードを自分のロジックと統合することによって、私はそれを働かせました。ありがとう。 :) .. ここに私のコードです: - この行をインデックスアクションに追加: - $ this-> set( 'mycss'、 'custom'); レイアウトファイルからmycss変数にアクセスしました。 :) 。 –

0

と同じ、

私はcontrに "mycss"変数を追加しましたoller、indexアクション: -

$this->set('mycss','custom'); 

とレイアウトファイルからこのmycss変数にアクセス: -

if(isset($mycss)){ 
    $this->Html->css("$mycss"); 
} 

をそして、それは働きました。

関連する問題