新手请教,手册是在控制器中增删改查,怎么在模板里面...
#1 2895594403
class main extends spController
{
function index(){ // 这里是首页
$this->display("login.html"); // 显示模板,这里使用的模板是根目录/tpl/green/index.html。
}
function login(){ //登录验证
$user = spClass("user");
$conditions = array( //
'u_username' => $this->spArgs('u_username'),
'u_password' => $this->spArgs('u_password'),
'identity' => $this->spArgs('identity'),
);
//$user->create($newrow);
$users=$user->find($conditions);
if($users){
$_SESSION['name']=$conditions['u_username'];//将用户名保存到session
echo "";
}
else{
echo "";
}
$this->display("login.html");
}
function write(){
if(!$_SESSION['name']){
echo "";
}
$this->display('messages.html');
}
这是在控制器中写的 请问怎么在model里面写增删改查方法
2016-07-15 16:36:23
#2 jake
其实很简单的php语法
比如说你这里有个user的model类
大概样子是:
class user extends spModel
{
var $pk = "id";
var $table = "user_table";
}
上面的代码中$users=$user->find($conditions);
是正常调用了model方法来查询的,当然,你希望是在所谓model里面来做这个事情,那么也简单,把user类改一下
class user extends spModel
{
var $pk = "id";
var $table = "user_table";
function findByConditions($condition){
return $this->find($condition);
}
}
那么刚才那句$users=$user->find($conditions);
就可以改成
$users=$user->findByConditions($conditions);
其他的改增方法,都可以自己在model里面定个名字,把外面的代码复制进来,然后再在控制器里面把参数传过来执行代码后返回,就可以了。
这样不就可以在model里面写增删改查方法了吗
如果不怕麻烦,可以更进一步,比如说spModel有个find方法,你还可以
class user extends spModel
{
var $pk = "id";
var $table = "user_table";
function find($conditions = null, $sort = null, $fields = null){
return parent::find($conditions, $sort, $fields);
}
function findByConditions($condition){
return $this->find($condition);
}
}
把spModel里面有的每个public方法,都按find的方法全部继承一次,那么就可以达成胖model瘦controller的想法了。
2016-07-15 17:01:21