我是 Lumen 的新手,正在嘗試制作一個簡單的 REST API 應用程式。我希望其中一個端點能夠顯示“storeItems”表中的所有記錄,但向每條記錄添加一個欄位及其類別并對它們進行分頁。
所以目前我有通常的
$products = DB::table('storeItems as i')
->where('i.B2BAvailable', '=', '1')
->select('i.title','i.EAN','i.vendor','i.productType','i.ID as productID','i.releaseDate',DB::raw('(CASE WHEN (i.releaseDate > NOW()) THEN 1 ELSE 0 END) AS announced'))
->orderBy('i.releaseDate', 'desc')
->paginate(100);
return response()->json($products);
這給出了預期的結果,但如果我想遍歷結果并從不同的表中添加一個欄位......像這樣:
foreach($products as $product) {
$genres = DB::table('sCategoryConnector as ggc')
->join('sCatGenre as gg','gg.ID','=','ggc.ID_sCatGenre')
->where('ggc.EAN', '=', DB::raw("'".$product->EAN."'"))
->select('gg.tag')
->orderBy('gg.ID', 'asc')
->get();
if (count($genres) > 0) {
$i=0;
foreach($genres as $genre) {
//$product['genres'][$i] = $genre['tag'];
$propName = 'genre'.$i;
$product->genres->$propName = $genre->tag;
$i ;
}
}
}
但是 Lumen 正在輸出:從空值錯誤創建默認物件并標記這一行:
$product->genres->$propName = $genre->tag;
我究竟做錯了什么?先謝謝了。
uj5u.com熱心網友回復:
所以我有點著急……應該像這樣替換分配型別:
if (count($genres) > 0) {
$i=0;
$product->genres = $genres;
/*
foreach($genres as $genre) {
//$product['genres'][$i] = $genre['tag'];
$propName = 'genre'.$i;
$product->genres->$propName = $genre->tag;
$i ;
}
*/
}
因此,將新屬性分配給 StdClass 物件的正確方法.... $product->genres = $genres;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336464.html
