如何解决在可排序网格行为中添加项目
我使用可排序网格行为,当我尝试添加项目时,我的排序属性“正在执行的SQL为:SELECT MAX”遇到问题
public function behaviors()
{
return [
'sort' => [
'class' => SortableGridBehavior::class,'sortableAttribute' => 'sort'
],];
}
我在控制器中的动作
public function actionAddLibraryValue($libId)
{
$request = Yii::$app->request;
$model = new LibrariesValues();
$model->lib_id = $libId;
if ($request->isPjax && $request->isPost && $model->load($request->post()) && $model->validate()) {
try {
$model->save();
} catch (\Exception $e) {
print_r($e);exit;
}
}
}
解决方法
小部件似乎有问题,我重新定义了类方法,现在可以了
class CustomSortableGrid extends SortableGridBehavior
{
public function beforeInsert()
{
/** @var ActiveRecord $model */
$model = $this->owner;
if (!$model->hasAttribute($this->sortableAttribute)) {
throw new InvalidConfigException("Invalid sortable attribute `{$this->sortableAttribute}`.");
}
$query = $model::find();
if (is_callable($this->scope)) {
call_user_func($this->scope,$query);
}
/* Override model alias if defined in the model's class */
$query->from([$model::tableName()]);
$maxOrder = $query->max('{{' . trim($model::tableName(),'{}') . '}}.[[' . $this->sortableAttribute . ']]');
$model->{$this->sortableAttribute} = $maxOrder + 1;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。