簡體   English   中英

Codeigniter 4 Seeder 給出錯誤,“數組到字符串的轉換”

[英]Codeigniter 4 Seeder gives an error, "Array to string conversion"

當我添加dh_setting_context' => 'user1'時,我收到Array to string conversion的錯誤,但是,當我從播種機中刪除該行時,它可以工作並且表格已正確填充。 為什么dh_setting_context' => 'user1'產生錯誤,請問如何解決?

這是我的播種機文件

namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
use \CodeIgniter\I18n\Time;

class DhSettingSeeder extends Seeder
{

public function run()
{
    $data = [
        
        // app - General App Settings
        [
            'dh_setting_key'            => 'app.dh_company_name' ,
            'dh_setting_value'          => 'ABC Big Co., Ltd',
            'dh_setting_created_at'     => Time::now(),
            'dh_setting_updated_at'     => Time::now()
        ],
        
        [
            'dh_setting_key'            => 'app.dh_company_address_line_1' ,
            'dh_setting_value'          => '123 Long Street',
            'dh_setting_created_at'     => Time::now(),
            'dh_setting_updated_at'     => Time::now()
        ],
        
        
        // email - general settings for email
        [
            'dh_setting_key'            => 'email.fromEmail' ,
            'dh_setting_value'          => 'example@yahoo.com',
            'dh_setting_created_at'     => Time::now(),
            'dh_setting_updated_at'     => Time::now()
        ],
        [
            'dh_setting_key'            => 'email.SMTPHost' ,
            'dh_setting_value'          => 'smtp.mail.yahoo.com',
            'dh_setting_created_at'     => Time::now(),
            'dh_setting_updated_at'     => Time::now()
        ],
        // add some user settings for admin user (user id = 1)
        [
            'dh_setting_key'            => 'user.timezone' ,
            'dh_setting_value'          => 'gmt',
            'dh_setting_context'        => 'user1',
            'dh_setting_created_at'     => Time::now(),
            'dh_setting_updated_at'     => Time::now()
        ]
    ];
    $this->db->table('dh_setting')->insertBatch($data);
}
}

這是我的表的結構

結構 dh_setting 表

並非$data中的所有條目都具有相同的鍵。

CodeIgniter 從第一個條目( 'dh_setting_key''dh_setting_value''dh_setting_created_at''dh_setting_updated_at' )中獲取鍵,並使用這些鍵檢查$data中的所有條目。

如果條目的鍵相同,它會創建一個包含條目值的字符串。

如果條目的鍵不同,則會創建一個空數組。

對於 INSERT 查詢,CodeIgniter 然后嘗試將值字符串與空數組連接起來,這是不允許的並會給出錯誤。

要修復,請將'dh_setting_context' => null,添加到其他條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM