這是我的物品模型。我創建了一個函式 arrayPackageItemSelect 來獲取 id 并將其等同于專案名稱。
class Item extends Model
{
use HasFactory;
protected $fillable = [
'user_id',
'name',
'price',
'itemdescription',
'activeInactive'
];
public function packageitems()
{
return $this->hasMany(PackageItem::class);
}
public static function arrayPackageItemSelect()
{
$arr = [];
$items = Item::all();
foreach($items as $item){
$arr[$item->id] = $item->name;
}
return $arr;
}
}
我的 PackageItem 模型
class PackageItem extends Model
{
protected $fillable = [
'user_id',
'item_id',
'price'
];
protected $table='packageitems';
public static function itemModel()
{
return $this->belongsTo(Item::class);
}
}
我的 PackageItem Controller (CREATE) 并從另一個表(外鍵)獲取專案 ID,以便我可以為其放置一個類別。
public function addPackageItem(Request $request)
{
$user = Auth::user();
$item = Item::arrayPackageItemSelect();
echo $item; // when I echo this I get Array to Conversion String in POSTMAN
$fields = $request->validate([
'user_id' => 'required',
'item_id' => 'required',
'price' => 'required|numeric'
]);
// // echo $items;
$package = PackageItem::create([
'user_id' => $user->id,
'item_id' => $item,
'price'=> $fields['price']
]);
return response($package, 201);
}
當我回顯 Items 時我得到了什么

我從郵遞員那里得到的結果

我的架構

這是我參考的地方https://www.artofcse.com/learning/product-view-insert-update-delete
任何人都可以幫助我有什么問題嗎?
uj5u.com熱心網友回復:
在您的控制器中(addPackageItem 方法):
$package = PackageItem::create([
'user_id' => $user->id,
'item_id' => $fields['item_id'],
'price'=> $fields['price']
]);
另外,我認為您的 PackageItem 模型中存在錯誤。不應在靜態方法中呼叫belongsTo:
public function itemModel()
{
return $this->belongsTo(Item::class);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/336398.html
下一篇:統計用戶瀏覽量(SwiftUI)
