Comment puis-je accéder à une colonne de table en utilisant une clé étrangère dans la lame jusqu'à présent, je l'ai mais cela ne fonctionne pas.

Modèle d'enquête / relations

public function client()
{
    return $this->belongsTo(Client::class);
}
public function device()
{
    return $this->belongsTo(Device::class);
}

Modèle client

public function inquiry()
{
    return $this->hasMany(Inquiry::class);
}
public function devices()
{
    return $this->hasMany(Device::class);
}

Modèle d'appareil

public function inquiry()
{
    return $this->hasMany(Inquiry::class);
}

Manette

public function index()
{
    $inquiries = Inquiry::all();
    return view('stream.index', compact('inquiries'));
}

Vue

@foreach($inquiries as $inquiryKey => $inquiryValue)
    <tr>
        // stream id is the foreign that table has a column with names ...
        <th scope="row">{{ $inquiryValue->stream_id }}</th>        // works
        <th scope="row">{{ $inquiryValue->stream_id->name }}</th>  // does not work -> trying to get property of none object
0
junikear 11 août 2017 à 10:53

2 réponses

Meilleure réponse

Vous ne pouvez pas accéder à l'attribut name de stream_id, c'est juste un entier, ce que vous pouvez essayer est $inquiryValue->client->name ou je pense, $inquiryValue->client->first()->name

Assurez-vous de faire savoir à Laravel que stream_id est la clé utilisée pour vos relations.

1
Wreigh 11 août 2017 à 08:00

Vous devriez essayer avec cet exemple comme:

Réponse mise à jour

Manette

public function index()
{
    $inquiries = Inquiry::all();
    return view('stream.index', compact('inquiries'));
}

Voir la fiche

@foreach($inquiries as $inquiryKey => $inquiryValue)
    <tr>
        // stream id is the foreign that table has a column with names ...
        <th scope="row">{{ $inquiryValue->client->name }}</th>        // works
    </tr
@endforeach
0
AddWeb Solution Pvt Ltd 11 août 2017 à 08:33