簡體   English   中英

如何更改Laravel 5 Collection中的值

[英]How to change the value in laravel 5 collection

我這里有些問題。 我得到一個像這樣的集合:

$VenderData=Vender::where('active', '=', '1')->get();

在集合內部,我有一列稱為“ type ”,數據看起來像'A1,A2,A3,''A1,A3,'我想將這些代碼從另一個表“ vender_type ”傳輸為實名。

code name
 A1    XX
 A2    OO
 A3    ZZ

然后在原始集合$ VenderData中添加一個新列。

我怎樣才能做到這一點?

您必須拆分type屬性(使用array explode(string $delimiter , string $string) ),並從vender_type表中獲取每個名稱,請嘗試以下操作:

$VenderData = Vender::where('active', '=', '1')->get();
foreach($VenderData as $vend)
{
     $vend->new_type = array();
     $types = explode(",", $vend->type);
     foreach($types as $type)
     { 
         $t = vender_type::where('code', $type)->first();
         if($t)
             $vend->name_type[] = $t->name;
             // or for example : $vend->name_type[$type] = $t->name;
     }
}

希望對您有所幫助。

我認為與修改每個值之后相比,您需要更好的查詢。 vender_type可能是數據庫中的某些外鍵,因此您可以在查詢生成器中獲取該值。 要了解有關外鍵和laravel雄辯的加入,請檢查

基本上你需要這樣的東西

$users = DB::table('table1')
        ->join('table2', 'table1.vender_type', '=', 'table2.vender_type')
        ->select('table1.code', 'table1.name', 'table2.vender_type')
        ->where('table1.active', '=', '1')
        ->get();

只需將table1table2替換為數據庫中表名的值即可。

希望能幫助到你

暫無
暫無

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

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