6 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
我也遇到過同樣的問題。要解決這個問題,您需要在您正在使用的模型構造函數(shù)中調(diào)用基類構造函數(shù):parent:__construct();

TA貢獻1821條經(jīng)驗 獲得超6個贊
<?php
namespace App\Models\Admin\User_management;
use CodeIgniter\Model;
class UsuariosModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'user_id';
protected $returnType = 'array';
protected $allowedFields = ['user_login', 'user_psw', 'user_full_name', 'user_email', 'user_telef', 'user_image', 'user_date_of_birth', 'user_gender', "user_created_at", "user_updated_at", "user_deleted_at"];
protected $useTimestamps = true;
protected $useSoftDeletes = true;
protected $createdField = 'user_created_at';
protected $updatedField = 'user_updated_at';
protected $deletedField = 'user_deleted_at';
public function __construct(){
parent::__construct();
$db = \Config\Database::connect();
$this->builder = $db->table('NAME OF THE TABLE');
}

TA貢獻1798條經(jīng)驗 獲得超7個贊
Codeigniter 4 在模型上預定義了變量,但其中很少有只需要true或fals,您只需要小心使用它們即可:
這些是以下定義的變量,其protected范圍為model:
protected $table = '';
protected $primaryKey = 'id';
protected $useAutoIncrement = true;
protected $returnType = 'array';
protected $useSoftDeletes = true;
protected $allowedFields = [];
protected $useTimestamps = false;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
試試這個:
change $useSoftDeletes value from `true` to `false`
并運行,如果它解決了您的問題,則無需執(zhí)行任何其他操作。如果這不能幫助解決問題,則注釋這些所有變量,僅取消注釋,$table然后$allowedFields刷新頁面(如果它解決了問題),然后一一檢查其余boolean情況true,或者false可能是其中一個真正的問題。就我而言,我遇到了這個問題。
Note: 另請記住一件事,如果您使用構造函數(shù)方法controller或model然后必須調(diào)用parent::__construct();其他方法,則會出現(xiàn)此錯誤:
> TypeError
> CodeIgniter\Database\BaseResult::getResult(): Argument #1 ($type) must be of type string, null given, called in

TA貢獻1805條經(jīng)驗 獲得超9個贊
謝謝大家,我發(fā)現(xiàn)了這個問題,在我的模型中我正在使用構造函數(shù), public function __construct(){ $this->DB = \Config\Database::connect(); $this->BUILDER = $this->DB->table($this->table); }
我刪除了它,現(xiàn)在 find 和 findAll 正在工作

TA貢獻1810條經(jīng)驗 獲得超5個贊
使用了以下方法
public function __construct()?
{
? ? parent::__construct();
? ? //other constructor code here
}
我希望這對其他人有幫助。

TA貢獻1719條經(jīng)驗 獲得超6個贊
最有可能是由于模型文件或控制器文件中的構造函數(shù)存在問題。只要檢查一下即可。使用下面的代碼。不要在模型文件中使用任何構造函數(shù)。
模型視圖
class UsuariosModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'user_id';
protected $returnType = 'array';
protected $allowedFields = ['user_login', 'user_psw', 'user_full_name', 'user_email', 'user_telef', 'user_image', 'user_date_of_birth', 'user_gender', "user_created_at", "user_updated_at", "user_deleted_at"];
protected $useTimestamps = true;
protected $useSoftDeletes = true;
protected $createdField = 'user_created_at';
protected $updatedField = 'user_updated_at';
protected $deletedField = 'user_deleted_at';
}
在控制器中
use App\Models\UsuariosModel;
$myObject = new UsuariosModel()
$query = $myObject->findAll();
echo '<pre>';
print_r($query);
exit;
- 6 回答
- 0 關注
- 256 瀏覽
添加回答
舉報