<?php
/**
* 每一个CRUD操作
* @author bluehire
*
*/
class SCrudOperation {
/**
* 主CRUD对象
*
* @var SCrud
*/
protected $crud;
/**
* 过滤条件,只有满足此条件的数据才有此操作
* @var Closure
*/
public $filter;
// 配置信息
protected $config;
// 操作对应的METHOD名
public $method;
//操作显示名
public $title;
// 设置配置信息
public function config(array $config) {
$this->config = $config;
}
/**
* 执行修改的具体 操作
* @param SRequest $req
*/
private function processDoUpdate(SRequest $req){
$primaryField=$this->crud->getPrimaryField();
$fields = $this->crud->listUpdatable ();
$data = array ();
foreach ( $fields as $f ) {
$k = $f->name;
$inputName = 'crud_update_' . $k;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
$v = $f->defaultValue;
} else {
$v = $req->$inputName;
}
if ($f->isPassword and ! $v) {
continue;
}
if ($f->encode) {
$v = $f->encode ( $v );
}
$data [$k] = $v;
}
$inputName = 'crud_update_' . $primaryField->name;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
return $this->error ( '错误 的编辑 操作.' );
}
$primaryValue = $req->$inputName;
foreach ( $this->crud->listUpdated () as $f ) {
$data [$f->name] = time ();
}
//@todo:执行真正的修改操作
return $this->ajaxOk(array('msg'=>'修改了一条数据','go'=>'list',dump($data,'data',true)));
}
/**
* 执行新增操作的处理
* @param SRequest $req
*/
private function processDoInsert(SRequest $req){
$fields = $this->crud->listInsertable ();
$data = array ();
foreach ( $fields as $f ) {
$k = $f->name;
$inputName = 'crud_insert_' . $k;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
$v = $f->defaultValue;
}
/**
* 每一个CRUD操作
* @author bluehire
*
*/
class SCrudOperation {
/**
* 主CRUD对象
*
* @var SCrud
*/
protected $crud;
/**
* 过滤条件,只有满足此条件的数据才有此操作
* @var Closure
*/
public $filter;
// 配置信息
protected $config;
// 操作对应的METHOD名
public $method;
//操作显示名
public $title;
// 设置配置信息
public function config(array $config) {
$this->config = $config;
}
/**
* 执行修改的具体 操作
* @param SRequest $req
*/
private function processDoUpdate(SRequest $req){
$primaryField=$this->crud->getPrimaryField();
$fields = $this->crud->listUpdatable ();
$data = array ();
foreach ( $fields as $f ) {
$k = $f->name;
$inputName = 'crud_update_' . $k;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
$v = $f->defaultValue;
} else {
$v = $req->$inputName;
}
if ($f->isPassword and ! $v) {
continue;
}
if ($f->encode) {
$v = $f->encode ( $v );
}
$data [$k] = $v;
}
$inputName = 'crud_update_' . $primaryField->name;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
return $this->error ( '错误 的编辑 操作.' );
}
$primaryValue = $req->$inputName;
foreach ( $this->crud->listUpdated () as $f ) {
$data [$f->name] = time ();
}
//@todo:执行真正的修改操作
return $this->ajaxOk(array('msg'=>'修改了一条数据','go'=>'list',dump($data,'data',true)));
}
/**
* 执行新增操作的处理
* @param SRequest $req
*/
private function processDoInsert(SRequest $req){
$fields = $this->crud->listInsertable ();
$data = array ();
foreach ( $fields as $f ) {
$k = $f->name;
$inputName = 'crud_insert_' . $k;
if (! $req->exist ( $inputName ) or ! $req->$inputName) {
$v = $f->defaultValue;
}