javascript - 如何解决尝试获取非对象错误的属性“出价”
问题描述
我想以数据表的形式显示出价表中的数据。但是如果没有出价,我会收到此错误“尝试获取非对象的财产‘出价’”。出价模型连接到拍卖模型,拍卖模型连接到媒体站点模型。如果没有数据,如何使其显示空白记录。
这是我的控制器:
<?php
namespace App\Http\Controllers;
use App\Auction;
use App\Bid;
use App\User;
use App\Media;
use App\MediaSite;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class MediaSiteController extends Controller
{
public function show(MediaSite $mediaSite)
{
$auction = $mediaSite->auction;
$bids = $auction->bids;
return view('admin.media-site.show', ['mediaSite' => $mediaSite,'auction' => $auction], compact('auction'));
}
我的观点:
<body>
<div id="datatable-bid"></div>
</body>
<script>
$(document).ready(function () {
var datatableBid = $('#datatable-bid').mDatatable({
// datasource definition
data: {
type: 'local',
source: {!! json_encode($auction->bids) !!},
pageSize: 10
},
// layout definition
layout: {
theme: 'default', // datatable theme
class: '', // custom wrapper class
scroll: false,
footer: false // display/hide footer
},
// column sorting
sortable: true,
pagination: true,
search: {
input: $('#panel-search')
},
// columns definition
columns: [
{
field: "price",
title: "Price",
}, {
field: "month",
title: "Month",
},{
field: "user_id",
title: "User Id",
}
]
});
</script>
这是我的错误: 尝试获取非对象的属性“出价”
解决方案
在show()
函数中进行这些更改
$auction = $mediaSite->auction;
if($auction) {
$bids = $auction->bids;
} else {
$bids = [];
}
// now send $bids to view along with $auction
// may be like this
// return view(..., compact($auction, $bids));
然后,在您看来进行此更改
// datasource definition
data: {
type: 'local',
source: {!! json_encode($bids) !!},
pageSize: 10
},
看看这是否有帮助。
推荐阅读
- python - 如何在其他目录文件中使用 __init__.py 函数
- html - Firefox 阴影 CSS 悬停动画不适用于 SVG
- python - 将结果添加到 dict 的最快方法
- android - 在 android studio 3.0 中没有获得预览布局
- python - 将 pandas 数据框列及其顺序保留在数据透视表中
- android - 编译时Android X库抛出错误
- javascript - .toggle () 不适用于 Vue 路由器
- hyperledger-fabric - 我们可以构建由超级账本作曲家生成器生成的大规模应用程序吗?
- javascript - 将max运算符应用于所有元素的Javascript累积结果
- r - R中按组划分的预测图中的相交线