本文整理汇总了PHP中think\Loader::model方法的典型用法代码示例。如果您正苦于以下问题:PHP Loader::model方法的具体用法?PHP Loader::model怎么用?PHP Loader::model使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类think\Loader
的用法示例。
在下文中一共展示了Loader::model方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: picture
/**
* 利用TP核心的单图片上传方法
*/
public function picture()
{
$Storage = Loader::model('Storage');
$options = ['ext' => ['jpg', 'gif', 'png', 'jpeg']];
$info = $Storage->upload('upload', $options);
if (false !== $info) {
return $this->success('上传成功', '', $info);
} else {
return $this->error($Storage->getError());
}
}
示例2: edit
/**
* [edit description]
* @param integer $id [description]
*/
public function edit($id)
{
if (IS_POST) {
$data = $this->request->post();
$validate = Loader::validate('Category');
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
if (Loader::model('Category')->update($data)) {
return $this->success();
} else {
return $this->error();
}
} else {
$this->assign('info', Db::name('Category')->find($id));
$this->assign('upcate_list', Loader::model('Category')->treeSelect('', $id));
return $this->fetch('edit');
}
}
示例3: edit
/**
* 编辑
* @param [type] $id 主键
*/
public function edit($id)
{
if (IS_POST) {
$data = $this->request->post();
$validate = Loader::validate('Menu');
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
if (Loader::model('Menu')->update($data)) {
session('system_menu_list', null);
return $this->success();
} else {
return $this->error();
}
} else {
$this->assign('up_menus', self::_treeShow($id));
$this->assign('info', Db::name('Menu')->where('id', $id)->find());
return $this->fetch();
}
}
示例4: crRelation
/**
* 关联数据验证
* @access protected
* @param mixed $data 数据对象
* @param string $name 关联名称
* @return mixed
*/
protected function crRelation(&$data, $name = '')
{
if (empty($data) && !empty($this->data)) {
$data = $this->data;
} elseif (!is_array($data)) {
// 数据无效返回
return false;
}
if (!empty($this->_link)) {
$fields = $this->getFields();
// 遍历关联定义
foreach ($this->_link as $key => $val) {
// 操作制定关联类型
$mappingName = !empty($val['mapping_name']) ? $val['mapping_name'] : $key;
// 映射名称
if (empty($name) || true === $name || $mappingName == $name || is_array($name) && in_array($mappingName, $name)) {
// 操作制定的关联
$mappingType = !empty($val['mapping_type']) ? $val['mapping_type'] : $val;
// 关联类型
$mappingClass = !empty($val['class_name']) ? $val['class_name'] : $key;
// 关联类名
$mappingKey = !empty($val['mapping_key']) ? $val['mapping_key'] : $this->getPk();
// 关联键名
if (strtoupper($mappingClass) == strtoupper($this->name) || !isset($data[$mappingName])) {
continue;
// 自引用关联或提交关联数据跳过
}
// 获取关联model对象
$model = \think\Loader::model($mappingClass);
$_data = $data[$mappingName];
unset($data[$key]);
if ($_data = $model->token(false)->create($_data)) {
$data[$mappingName] = $_data;
$fields[] = $mappingName;
} else {
$error = $model->getError();
if ($this->patchValidate) {
$this->error[$mappingName] = $error;
} else {
$this->error = $error;
return false;
}
}
}
}
// 过滤非法字段数据
$diff = array_diff(array_keys($data), $fields);
foreach ($diff as $key) {
unset($data[$key]);
}
}
}
示例5: D
/**
* 实例化Model
* @param string $name Model名称
* @param string $layer 业务层名称
* @return object
*/
function D($name = '', $layer = MODEL_LAYER)
{
return \think\Loader::model($name, $layer);
}
示例6: model
/**
* 实例化Model
* @param string $name Model名称
* @param string $layer 业务层名称
* @param bool $appendSuffix 是否添加类名后缀
* @return \think\Model
*/
function model($name = '', $layer = 'model', $appendSuffix = false)
{
return Loader::model($name, $layer, $appendSuffix);
}
示例7: _checkFields
/**
* 检查是否定义了所有字段
* @access protected
* @param string $name 模型名称
* @param array $fields 字段数组
* @return array
*/
private function _checkFields($name, $fields)
{
if (false !== ($pos = array_search('*', $fields))) {
// 定义所有字段
$fields = array_merge($fields, \think\Loader::model($name)->getFields());
unset($fields[$pos]);
}
return $fields;
}
示例8: model
/**
* 实例化Model
* @param string $name Model名称
* @param string $layer 业务层名称
* @return \think\Model
*/
function model($name = '', $layer = MODEL_LAYER)
{
return Loader::model($name, $layer);
}
示例9: parseRule
/**
* 解析规则路由
* @access private
* @param string $rule 路由规则
* @param string $route 路由地址
* @param string $pathinfo URL地址
* @param array $option 路由参数
* @param array $matches 匹配的变量
* @return array
*/
private static function parseRule($rule, $route, $pathinfo, $option = [], $matches = [])
{
$request = Request::instance();
// 解析路由规则
if ($rule) {
$rule = explode('/', $rule);
// 获取URL地址中的参数
$paths = explode('|', $pathinfo);
foreach ($rule as $item) {
$fun = '';
if (0 === strpos($item, '[:')) {
$item = substr($item, 1, -1);
}
if (0 === strpos($item, ':')) {
$var = substr($item, 1);
$matches[$var] = array_shift($paths);
} else {
// 过滤URL中的静态变量
array_shift($paths);
}
}
} else {
$paths = explode('|', $pathinfo);
}
// 获取路由地址规则
if (is_string($route) && isset($option['prefix'])) {
// 路由地址前缀
$route = $option['prefix'] . $route;
}
// 替换路由地址中的变量
if (is_string($route) && !empty($matches)) {
foreach ($matches as $key => $val) {
if (false !== strpos($route, ':' . $key)) {
$route = str_replace(':' . $key, $val, $route);
unset($matches[$key]);
}
}
}
// 绑定模型数据
if (isset($option['bind_model'])) {
$bind = [];
foreach ($option['bind_model'] as $key => $val) {
if ($val instanceof \Closure) {
$result = call_user_func_array($val, [$matches]);
} else {
if (is_array($val)) {
$fields = explode('&', $val[1]);
$model = $val[0];
$exception = isset($val[2]) ? $val[2] : true;
} else {
$fields = ['id'];
$model = $val;
$exception = true;
}
$where = [];
$match = true;
foreach ($fields as $field) {
if (!isset($matches[$field])) {
$match = false;
break;
} else {
$where[$field] = $matches[$field];
}
}
if ($match) {
$query = strpos($model, '\\') ? $model::where($where) : Loader::model($model)->where($where);
$result = $query->failException($exception)->find();
}
}
if (!empty($result)) {
$bind[$key] = $result;
}
}
$request->bind($bind);
}
// 解析额外参数
self::parseUrlParams(empty($paths) ? '' : implode('|', $paths), $matches);
// 记录匹配的路由信息
$request->routeInfo(['rule' => $rule, 'route' => $route, 'option' => $option, 'var' => $matches]);
// 检测路由after行为
if (!empty($option['after_behavior'])) {
if ($option['after_behavior'] instanceof \Closure) {
$result = call_user_func_array($option['after_behavior'], []);
} else {
foreach ((array) $option['after_behavior'] as $behavior) {
$result = Hook::exec($behavior, '');
if (!is_null($result)) {
break;
}
}
//.........这里部分代码省略.........
示例10: edit
/**
* 编辑配置
* @param integer $id 配置主键
*/
public function edit($id)
{
if (IS_POST) {
$data = $this->request->post();
$validate = Loader::validate('Config');
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
if (Loader::model('Config')->update($data)) {
Cache::clear();
return $this->success();
} else {
return $this->error();
}
} else {
$this->assign('info', Db::name('Config')->find($id));
return $this->fetch();
}
}
示例11: keyword_edit
/**
* 编辑关键字
* @return [type]
*/
public function keyword_edit($id)
{
if (IS_POST) {
$data = $this->request->post();
$validate = Loader::validate('WechatKeyword');
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
if (Loader::model('WechatKeyword')->update($data)) {
return $this->success('', url('system/weixin/keyword'));
} else {
return $this->error();
}
} else {
$info = Db::name('WechatKeyword')->find($id);
$this->assign('contentType', self::keyword_type($info['type'], $info['content']));
$this->assign('info', $info);
return $this->fetch();
}
}
示例12: edit
/**
* 编辑
* @param [type] $id [description]
*/
public function edit($id)
{
if (IS_POST) {
$data = $this->request->post();
$validate = Loader::validate('Member');
if (!$validate->scene('edit')->check($data)) {
return $this->error($validate->getError());
}
if (Loader::model('Member')->update($data)) {
logs('用户编辑成功', $data);
return $this->success();
} else {
return $this->error();
}
} else {
$level = Db::name('member')->find($id);
$map = ['id' => ['neq', 1], 'status' => 1, 'level' => $level['level'] - 1];
$list = Db::name('member')->where($map)->field('id,nickname')->select();
$this->assign('list', $list);
$info = Db::name('Member')->find($id);
$this->assign('info', $info);
return $this->fetch();
}
}