Попытка получить свойство необъекта в Laravel 5.5 при получении объекта из массива - PullRequest
0 голосов
/ 28 сентября 2018

Я новичок в Laravel и пытаюсь получить объект из массива.Однако я получаю следующую проблему:

Попытка получить свойство не-объекта в Laravel 5.5 при получении объекта из массива

Сильфонный код в шаблоне Blade:

@foreach($writers as $writer)
    <?php
        $order_writer = DB::table('tbl_writers_payment')
                        ->select('fk_writer_id')
                        ->orderBy('pk_payment_id', 'desc')
                        ->where('fk_order_id',$row->pk_order_id)
    ?>

    @if($writer->pk_writer_id == $order_writer->fk_writer_id)
        <option selected value="{{ $writer->pk_writer_id }}">
            {{ $writer->name }}
        </option>
    @endif

@endforeach

В приведенном выше коде, когда я сравниваю код [$order_writer->fk_writer_id] в выражении if, я получаю это object not found.

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы должны попробовать это

Если доступно несколько платежей

$order_writers = DB::table('tbl_writers_payment')
                        ->select('fk_writer_id')
                        ->where('fk_order_id',$row->pk_order_id)
                        ->orderBy('pk_payment_id', 'desc')
                        ->get();

    @foreach($order_writers as $order_writer)
        @if($writer->pk_writer_id == $order_writer->fk_writer_id)
            <option selected value="{{ $writer->pk_writer_id }}">
                {{ $writer->name }}
            </option>
        @endif
    @endforeach
0 голосов
/ 28 сентября 2018

Ну, WHERE должен предшествовать ORDER BY ( документы ).Попробуйте сделать это:

$order_writer = DB::table('tbl_writers_payment')
                ->select('fk_writer_id')
                ->where('fk_order_id',$row->pk_order_id)
                ->orderBy('pk_payment_id', 'desc')

Кроме того, после этого попробуйте использовать ->get():

$order_writer = DB::table('tbl_writers_payment')
                ->select('fk_writer_id')
                ->where('fk_order_id',$row->pk_order_id)
                ->orderBy('pk_payment_id', 'desc')
                ->get();

Если вышеприведенное не работает для вас, вы можете рассмотреть возможность использования Условные пункты .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...