[英]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();
只需將table1
和table2
替換為數據庫中表名的值即可。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.