Как получить множественный результат с помощью Eloquent - PullRequest
0 голосов
/ 28 апреля 2018

Я могу получить первый результат, используя этот код

public function search(Request $request)
{
    $record = St::where('pn', $request->input)->first();
    $param = ['input' => $request->input, 'record' =>$record];
    return view('contacts.find', $param);

}

но я изменился вот так

$ record = St :: where ('pn', $ request-> input) -> get ();

ошибка появляется

Метод Illuminate \ Database \ Eloquent \ Collection :: getData не существует

Может кто-нибудь сказать мне, почему?

моя версия 5.6

store {#717 ▼
  #connection: "mysql"
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:20 [▶]
  #original: array:20 [▶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #fillable: []
  #guarded: array:1 [▶]
}

файл лезвия

 @if (isset($record))
    <table>
    <tr><th>result</th></tr>
    <tr>
       <td>{{$record->getResult()}}</td>
    </tr>
    </table>
</div>
    @endif

а это класс

class st extends Model
{

    public function getResult()
    {
        return $this->pn;
    }
}

1 Ответ

0 голосов
/ 28 апреля 2018

$record - это коллекция при использовании get(). Таким образом, вы должны использовать цикл для доступа к отдельным экземплярам. Вы также должны переименовать его в $records:

public function search(Request $request)
{
    $records = St::where('pn', $request->input)->get();
    $param = ['input' => $request->input, 'records' => $records];
    return view('contacts.find', $param);
}


@foreach($records as $record)
   {{ $record->getResult() }}
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...