Codeigniter -错误-没有要更新的数据

ctehm74n  于 8个月前  发布在  其他
关注(0)|答案(2)|浏览(42)

我想更新我的数据库,但我得到的错误,“没有数据更新”。这是我的剧本
我创建了一个简单的切换来更新数据库。切换使用户处于活动状态(is_active=1)或非活动状态(is_active=0)。我遇到的问题是,虽然对象是从1到0或0到1的变化,当我把它传递给模型时,它返回错误,“没有数据要更新”。方法如下;
命名空间App\Controllers\Admin;
使用App\Entities\User;
class Users extends \App\Controllers\BaseController { private $model;

public function __construct()
{
    $this->model = new \App\Models\UserModel;
}


      public function toggle_user_is_active($id)
      {
      $users = $this->model->where('id', $id)->first();  // get the record

     // if the current user is ACTIVE, then set it to DEACTIVE
     if ($users->is_active == 1) {
         $users->is_active = 0; 
         $this->model->save($users));  // gives an error, nothing to update
         return redirect()->to('/Admin/Users/index')
                     ->with('info', 'Success - User deactivated');
     } else {
         // if the current used is ACTIVE(1), change to INACTIVE(0)
         $users->is_active = 1; 
         $this->model->save($users); // same error as above
         return redirect()->to('/Admin/Users/index')
                     ->with('info', 'Success - User Activated');
     }
 } // end method

 }

真正奇怪的是,这是另一个方法的副本,它可以完美地工作,如下所示;

namespace App\Controllers\Admin;

 use App\Entities\CategoryEntity;
 use App\Entities\PostEntity;

class Post extends \App\Controllers\BaseController
{
private $model;

public function __construct()
{
    $this->model = new \App\Models\PostModel;
    $this->CategoryModel = new \App\Models\CategoryModel;
    $auth = new \App\Libraries\Authentication;
    $this->current_user = $auth->getCurrentUser();
}

public function toggle_post_is_published($post_id)
{
    $post = $this->model->where('post_id', $post_id)->first();
    // if the current post is PUBLISHED, then set it to UNPUBLISHED
    if ($post->post_is_published == 1) {
        echo
        $post->post_is_published = 0;
        $this->model->save($post);
        return redirect()->to('/admin/post/post_index')
                         ->with('info', 'Success - Post unpublished');
    } else {
        // if the current post is UNPUBLISHED, then set it to PUBLISHED
        $post->post_is_published = 1;
        $this->model->save($post);
        return redirect()->to('/admin/post/post_index')
                         ->with('info', 'Success - Post published');
    }
}
} // end class
plicqrtu

plicqrtu1#

我终于想明白了。在我的UserModel中,我没有将'is_active'添加到protected $allowedFields。我现在已经将'is_active'添加到allowedFields中,并且它可以工作。

u4vypkhs

u4vypkhs2#

你声明了你的模型,因为看起来你使用了$this- >model,但没有在构造函数或其他方法中设置你的模型。

相关问题