2017-03-14 71 views
0

我正在構建一個用於學習目的的PHP框架(MVC)。我需要將變量從控制器發送到視圖的幫助。從控制器傳遞變量以查看在php

的HomeController

<?php 
class HomeController{ 
    public function home() 
    { 
     $some_var = "Do Something"; 
     return view("home.php",compact('some_var')); 
    } 
} 
?> 

我希望能夠訪問在我看來,$some_var變量

視圖

<h3>$some_var</h3> 
+0

什麼是你的問題之前訪問使用PHP的extract功能extract function documentation? –

+0

想建議你SMARTY模板來傳遞控制器數據來查看文件。請參閱此鏈接瞭解如何將SMARTY與您的代碼集成http://codesamplez.com/development/smarty-basics-tutorial –

+0

這是laravel框架還是您嘗試構建自定義框架? –

回答

1

要使來自控制器的變量可以在html文件中訪問,你可以從得到變量功能,包括HTML文件

<?php 

// Controller Class 

class Controller 
{ 
    public function someMethod() 
    { 
     $variable = "SomeVar"; 
     return view("home.php",compact('variable')); 
    } 
} 

// template loader 

function view($page,$variables=[]) 
{ 
    if(count($variables)) 
    { 
     extract($variables); 
    } 
    require $page; 
} 

這使得$variableindex.php文件

-1
<?php 
class HomeController{ 
    public function home() 
    { 
     $some_var = "Do Something"; 
     return view("home")->with('some_var',$some_var); 
    } 
} 
?> 
+3

如果你不僅要刪除一些代碼,而且還要解釋他和你的代碼中發生了什麼,這將是非常棒的。它可以幫助問題作者和其他用戶。這很好,如果它有效,但知道**爲什麼**在我看來更重要。 – Nrzonline

0

您將得到基本思想view()函數如何從下面加載數據。

閱讀從here.本手冊如何笨加載視圖文件,以及如何在內部$this->load->view('view', $data);view()函數作品請看下面的代碼

詳細的 public function view()
public function view($view, $vars = array(), $return = FALSE) 
{ 
    return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return)); 
} 

功能是從here.

相關問題