2017-10-11 8 views
0

J'ai une page de lame qui devrait afficher les détails du projet sélectionné et aussi les données d'identifications particulières des trois autres tables, Événements, Donation & Opportunité. Mais je suis seulement capable de récupérer les valeurs des tables de projet et non les 3 autres tables. Aucun message d'erreur aussi. S'il vous plaît aider à interroger les 4 tables dans une seule page en utilisant laravel.Récupérer des valeurs à partir de 4 tables avec une relation de plusieurs est dans laravel

Mon fichier ProjectController:

public function getDetailedProject() 
{ 
    $data=Project::all()->where('pid', 35); 
    $eve=Event::all()->where('pro_id', 35); 
    $don=Donation::all()->where('pro_id', 35); 
    $opp=Opportunity::all()->where('pro_id', 35); 
    return view('other.detailedProject')->with('data',$data); 
} 

Mes codes de fichier DetailedProject.blade.php:

@extends('templates.default') 

@section('content') 

    @foreach($data as $row) 
    <ul> 
<h2>Project Details</h2> 
<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project Title </label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->ptitle}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project Description</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->pdescription}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project Duration</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->pduration}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project Start Date</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->psdate}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project End Date</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->pedate}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project Category</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$row->pcategory}} </label> 
</div> 
</div> 
@endforeach 

@foreach($data as $eve) 
<h2>Event Details</h2> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Event Title </label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->etitle}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Event Details</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->edetails}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Event Date</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->edate}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Event Time</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->etime}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Project End Date</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->elocation}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Event Details</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$eve->eimage}}</label> 
</div> 
</div> 
@endforeach 

@foreach($data as $don) 
<h2>Donation</h2> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Total Cost</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label>{{$don->dtotal}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Amount in Hand</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$don->dinhand}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Amount Required</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label>{{$don->dtotal}} - {{$don->dinhand}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Bank Account</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$don->dbankaccount}}</label> 
</div> 
</div> 
@endforeach 

@foreach($data as $opp) 
<h2>Oppertunity</h2> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Position</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$opp->oposition}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Describtion</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$opp->odescription}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Location</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$opp->olocation}}</label> 
</div> 
</div> 

<div class="row"> 
<div class="col-lg-3 col-md-3 col-sm-3"> 
    <label>Deadlinet</label> 
</div> 
    <div class="col-lg-9 col-md-9 col-sm-9"> 
    <label> {{$opp->odeadline}}</label> 
</div> 
</div> 
@endforeach 

</ul> 
@stop 

S'il vous plaît me aider à l'erreur. Im nouveau à laravel

+1

Vous transmettez uniquement '$ data' dans la vue. '$ eve',' $ don' et '$ opp' ne font pas partie de' $ data'. À aucun moment vous n'appelez réellement les relations. – aynber

+0

N'utilisez pas 'all() -> where()', cela récupère toutes les données de la base de données, puis filtre la collection qui est incroyablement inefficace. Utilisez 'where() -> get()' pour filtrer sur la base de données et obtenir uniquement les données correspondant aux conditions. – Devon

+0

J'ai essayé mais j'ai toujours une erreur. Alors, comment dois-je le coder? –

Répondre

0

Essayez ce code, espérons que cela fonctionne!

$data=Project::where('pid', 35)->get(); 
$eve=Event::where('pro_id', 35)->get(); 
$don=Donation::where('pro_id', 35)->get(); 
$opp=Opportunity::where('pro_id', 35)->get(); 
return view('other.detailedProject', compact('data', 'eve', 'don', 'opp')); 
+0

J'ai essayé mais j'ai reçu un message d'erreur. "Utilisation de données constantes non définies - supposées 'données' (Voir: C: \ xampp \ htdocs \ blog \ ressources \ vues \ Autre \ detailedProject.blade.php)". Celui-là. Comment le résoudre?? –