簡體   English   中英

使用 eloquent 從 select 插入 laravel

[英]Insert from select in laravel using eloquent

我正在使用 laravel 8。我想通過從一個表選擇到另一個表來插入多行。 我正在使用 DB::statement() 但現在想使用 eloquent 來實現。 這是我的示例代碼:

DB::statement("insert into bank_information (user_id, bank_id, account_name,account_number)
        select applicant_id,bank_id,account_name,account_number from applicant_bank_information
        where erec_applicant_bank_information.applicant_id =".$applicant_id); 

如何使用單個 eloquent 命令執行此操作? 此外,在 laravel 中還有其他更智能/更快的方法嗎?

我不知道 Eloquent 方法,但是在 Laravel 5.7.17 之后,我們在查詢生成器 insertUsing() 中有一個新方法。 不幸的是,官方文檔中沒有提到這一點。

查詢構建器代碼將如下所示:

$select = DB::table('applicant_bank_information as abi')
    ->select('applicant_id','bank_id','account_name','account_number')
    ->where('abi.applicant_id', $applicant_id);
    
$rows_inserted = DB::table('bank_information')
    ->insertUsing(['user_id','bank_id', 'account_name','account_number'], $select);

測試和工作。 請記住,您不要使用 ->get() 運行 select 請求。

暫無
暫無

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

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