Laravel不从数据库检索双精度值

时间:2019-02-09 07:35:52

标签: database laravel eloquent inner-join

我一直在尝试从表“价格”中获取价格数据,并将其存储在另一个表“ bookings”中。

$duit =Booking::Join('rates', 'bookings.park_area','=', 'rates.areaid')
    ->where('bookings.user_id', '=', Auth::user()->userid)
    ->where('bookings.park_area','=',$bookings->park_area)
    ->where('bookings.semester','=',$bookings->semester)
    ->first(['rates.price']);  
$bookings->price=($duit);
    $bookings->save();

但是,我收到一条错误消息,指出值检索不是双精度数据类型:{“ price”:80}。因此,我尝试将first(['rates.price']);更改为value('rates.price'),但它存储为null。

那么,为什么{“ price”:80}变为null以及如何获得80的值?

1 个答案:

答案 0 :(得分:2)

您可以在此处使用select方法或直接获取

直接获取对象值 ->first()->price 或此- ->first(['rates.price']);

$duit = Booking::Join('rates', 'bookings.park_area','=', 'rates.areaid')
    ->where('bookings.user_id', '=', Auth::user()->userid)
    ->where('bookings.park_area','=',$bookings->park_area)
    ->where('bookings.semester','=',$bookings->semester)
    ->select('rates.price')
    ->first()->price;  

$bookings->price = $duit;
$bookings->save();