在我的示例mvc项目中,我有一个包含视图文件的渲染函数
有时在我的控制器中我想通过成功或错误按摩来查看表格(来自控制器)
渲染功能:
public function render($view)
{
include 'view/'.$view.'.php';
}
控制器:
public function sendguide()
{
if(isset($_POST['submit']))
{
$success='ur massage posted successfully ';
$this->render('sendguide');
}
else
$this->render('sendguide');
}
这是我在以下位置打印成功消息的视图的一部分:
<tr>
<td align="right">  
<input name='submit' type='submit' value='ثبت دزخواست' ><?php echo $success; ?>
</tr>
似乎当我设置$success
并将其发送到我的视图时,视图必须打印
成功的消息,但它没有工作!
我错过了什么?
tnx
答案 0 :(得分:1)
当前脚本中的变量可以在包含的文件中访问(假设它们在包含之前分配)。
但是在您的示例中,您的$success
函数无法访问render()
变量,因此您无法使用该函数中包含的脚本。
PHP文档准确描述了变量范围的问题;
http://php.net/manual/en/language.variables.scope.php
您可以将$ success变量作为参数传递给render()函数;
public function render($view, $success='')
{
include 'view/'.$view.'.php';
}
我添加了$success=''
作为参数。 =''
表示如果未提供任何值,则默认为空字符串。
将$success
传递给函数调用中的函数;
public function sendguide()
{
if(isset($_POST['submit']))
{
$success='ur massage posted successfully ';
$this->render('sendguide', $success);
}
else
$this->render('sendguide');
}
作为旁注:我将为$success
分配一个布尔值(true / false)以传递给函数以定义成功或失败。然后在您的视图文件中,您可以检查成功:if($success) echo...
向用户发送适当的消息,而不是在脚本的$success
变量中传递消息(String)。