Как решить Попытка получить свойство 'ставки' ​​ошибки не объекта - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу отображать данные из таблицы ставок в виде данных.Но я получаю эту ошибку «Попытка получить свойства« ставки »не-объекта», если у него нет заявок. Модель заявок связана с моделью аукциона, а модель аукциона связана с моделью медиа-сайта.Как заставить его отображать пустую запись, если у него нет данных.

Вот мой контроллер:

<?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>

Вот мойошибка: Попытка получить свойства 'ставки' ​​не-объекта

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

В функции 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
},

Посмотрите, поможет ли это.

0 голосов
/ 03 декабря 2018

место после $auction = $mediaSite->auction;

if($auction){
$bids = $auction->bids;
}else{
//put following line or whatever you need to do if there is no data comes
$auction = [];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...