2017-03-08 11 views
0

私は既存のウェブサイトをCakePHP 2.xからCakePHP 3.xに変換しています。Cakephp3:コントローラ内のコンテンツの表示

私はcakePHP2で次のコードを使用して、コントローラで表示されるコンテンツを表示しています。 (私はこれを行うには、推奨の方法ではありません知っているが、私は何とかそれを必要とする。)

ob_start(); 
$view = new View($this, false); 
$payment_form = $view->render(); 
ob_end_clean(); 

私はこのを試みたが、を働いていない:

ob_start(); 
$view = new \Cake\View\View($this->request, $this->response); 
$payment_form = $view->render('/Orders/index'); 
ob_end_clean(); 

私はウェブ上で検索が、couldn同様のCakePHP3コードの助けを得ることはできません。

答えて

2

を扱う、私はそうする方法を考え出しました。

$data = "This will be accessible in view if it will be set in view builder"; 

// create a builder (hint: new ViewBuilder() constructor works too) 
$builder = $this->viewBuilder(); 

// configure as needed 
$builder->autoLayout(false); 
$builder->template('Orders/process_order'); 
$builder->helpers(['Html']); 

// create a view instance (set variables here which you want to access in view) 
$view = $builder->build(['data' => $data]); 

// render to a variable 
$payment_form = $view->render(); 
0

あなたがob_startob_end_cleanを必要といけない、Viewは裁判/エラーをグーグルや他の後にその部分

$view = new \Cake\View\View($this->request, $this->response); 
$payment_form = $view->render('/Orders/index'); //Returns the view content 

//echo $payment_form; 
+0

これはうまくいきませんでした。 'ob_start/flush'はここで何の違いもありません。とりあえずありがとう! – Parixit

関連する問題