我正在使用 MVC PHP 框架 Codeigniter,并且我有一个直接的问题,即从哪里调用redirect():控制器还是模型?
设想:
用户导航到 www.example.com/item/555。在我的模型中,我在项目数据库中搜索 ID 为 555 的项目。如果找到该项目,我会将结果返回给我的控制器。但是,如果找不到某个项目,我想将用户重定向到某个地方。对redirect() 的调用应该来自模型内部还是控制器内部?为什么?
不,你的模型应该返回 false,你应该像这样检查你的控制器:
class SampleModel extends Model
{
//Construct
public function FetchItem($id)
{
$result = $this->db->select("*")->from("table")->where("item_id",$id)->get();
if($result->num_rows() == 0)
{
return false;
}
//return result
}
}
并在你的控制器中执行以下操作:
function item($id)
{
$Item = $this->SampleModel->FetchItem($id);
if(!$Item)
{
redirect("class/error/no_item");
}
}
模型仅用于数据,或者返回标准结果,例如键/值对象或布尔值。
所有逻辑都应由控制器处理/控制。
模型不是特定于页面的,并且在整个应用程序中全局使用,因此如果另一个类/方法使用该模型,它可能会重定向到错误的位置,因为它是站点的不同部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)