0

У меня есть немного борьбы с отображением результатов запроса в шаблоне клинка. Основы: у меня две таблицы; стран и эмитентов. Модель страны имеет отношение к Эмитенту, и наоборот. Оба соотношения правильно определены в моделях. Я пытаюсь отобразить список эмитентов, который содержит имя (страну) страны. Мой запрос в эмитентеконтроллере выглядит следующим образом:Показать результаты запроса соединения в лезвии

 $issuers = ISSUER::join('countries', 'issuers.country_id', '=', 'countries.id') 
      ->select('issuers.*', 'countries.nation') 
      ->orderBy('nation', 'asc') 
      ->orderBy('author', 'asc') 
      ->get(); 

Этот запрос работает и dd(); показывает, что он возвращает массив для каждого эмитента, который включает все данные эмитента, а также соответствующее название страны как нации. Отлично. Однако, когда я пытаюсь показать это, я смотрю на стену. Моя первая попытка состояла в том, чтобы просто использовать

     @foreach($issuers as $issuer) 
        <tr> 
        <td>{{ $issuer->id }}</td> 
        <td>{{ $issuer->nation }}</td> 
        <td>{{ $issuers->author }}</td> 

Это возвращает неопределенную переменную на $ nation. Я не знаю, почему это происходит, поскольку я не пытаюсь получить доступ к отношениям. Я просто пытаюсь получить доступ к результатам массива, который был возвращен из запроса. В этот момент отношения не должны быть релевантными. Во всяком случае, пытаюсь использовать отношения, которые я пытаюсь использовать

     @foreach($issuers as $issuer) 
        <tr> 
        <td>{{ $issuer->id }}</td> 
        @foreach($issuer->nation as $nation) 
        <td>{{ $issuer->nation }}</td> 
        @endforeach 
        <td>{{ $issuers->author }}</td> 

Который возвращает и недействительный аргумент, предоставленный в ошибке foreach(). Затем я пытаюсь использовать метод ...

     @foreach($issuers as $issuer) 
        <tr> 
        <td>{{ $issuer->id }}</td> 
        @foreach($issuer->Country() as $nation) 
        <td>{{ $issuer->nation }}</td> 
        @endforeach 
        <td>{{ $issuers->author }}</td> 

Это не вызывает ошибок, но ничего не возвращает. Колон просто пропущен, а все остальное, что эхо, сдвигается на один столбец влево.

Я как бы потерялся здесь, и я думаю, что это потому, что мой мозг упрямо держится за мысль о том, что я обращаюсь к элементам результата запроса, а не к элементам отношений, поэтому я не могу понять почему мне нужен отдельный цикл для этого одного столбца или как этот цикл должен работать. Любая помощь будет оценена по достоинству.

EDIT: Изменена последняя часть, потому что я набрал ее неправильно.

ответ

0

Ответ на этот вопрос для всех, кто наткнулся на него позже. Я был в состоянии получить доступ к значению нации непосредственно из результата запроса без модели связи, изменив запрос от

->select('issuers.*', 'countries.nation') 

в

->select('issuers.*', 'countries.nation as nation') 

от их я просто получить доступ значения, как я бы все остальное :

    <td>{{ $issuer->id }}</td> 
       <td>{{ $issuer->nation }}</td> 
       <td>{{ $issuers->author }}</td> 

 Смежные вопросы

  • Нет связанных вопросов^_^