php 集合列存在,但同时不知何故并不

v09wglhw  于 2022-12-02  发布在  PHP
关注(0)|答案(2)|浏览(202)

这个错误我已经处理了几个小时了,我自己不能解决它。
下面是代码:
如果您有任何问题,请点击这里返回。如果您有问题,请点击这里返回。

$repeated_entry_update = Product_Market::where('produto_id', '=', $product->id)
            ->where('market_id', '=', $market->id);

            if($repeated_entry->count())
            {
            
                $repeated_entry_update->update(['amount_requested' => $repeated_entry->amount_requested + $request->product_amount,
                    'amount_left' => $repeated_entry->amount_requested + $request->product_amount,
                    
                ]);
            }
            else
            {
                    
                    product_market::create(['produto_id' => $product['id'],
                    'market_id' => $market['id'], //saves the info ghatered to the product_market relationship
                    'amount_requested' => $request->product_amount, //table
                    'amount_left' => $request->product_amount,
                    'amount_sold' => '0'
                    
                ]);
            }

该错误指出属性[amount_requested]在此集合示例上不存在。但它确实存在
如果我把“DD($repeated_entry);“在第一个if之前,为了看到集合我得到了这个
enter image description here
我可以看到“amount_requested”就在那里,它确实在集合中,它可能是完全明显的,我只是需要一些睡眠,但我想寻求一些帮助,(不要介意代码的质量,我是一个noobie试图学习)
我尝试了其他方法来获取集合中的值,但它需要保持集合以与其余代码一起工作,我正准备睡觉,也许我在早上理解了一些东西,我看不到rn,抱歉问了这个愚蠢的问题

zzlelutf

zzlelutf1#

$repeated_entry是一个集合示例。我假设你需要第一个条目。你需要在get之后使用first

$repeated_entry = Product_Market::where('produto_id', '=', $product->id)
    ->where('market_id', '=', $market->id)
    ->get();

$first_entry = $repeated_entry->first();

然后,如果存在匹配条目,则更改条件:

if ($first_entry) {
bihw5rsg

bihw5rsg2#

变更:

$repeated_entry_update = Product_Market::where('produto_id', '=', $product->id)
        ->where('market_id', '=', $market->id);

$repeated_entry_update = Product_Market::where([
    'produto_id' => $product->id,
    'market_id' => $market->id
])->first();

您需要添加->first()以实际获取对象,稍微清除了where条件。

相关问题