在视图中显示数据时出现问题

时间:2019-05-19 00:33:48

标签: laravel

我是laravel的初学者,我有一个毕业项目,我开发了一个学校管理应用程序,父母与学生之间有一对多的关系,我必须显示父母的名字,但它不起作用

此错误未定义变量:父亲(查看:C:\ xampp \ htdocs \ ecole \ resources \ views \ admin \ eleves.blade.php)

                    <tr>
                <th>id-eleve</th>
                  <th>Nom</th>
                  <th>Prenom</th>
                  <th>Adresse</th>
                  <th>Age</th>
                  <th>Sexe</th>
                  <th>Nationnalité</th>
                  <th>Niveau scolaire </th>
                   <th>les actions</th>
                </tr>
              </thead>
              <tbody>
                @foreach($father->eleves as $eleve)
                <tr>

                  <td class="numeric"  data-title="id-parent" >{{$eleve>id}}</td>
                  <td class="numeric"  data-title="Nom">{{$eleve->nom}}</td>
                  <td class="numeric"  data-title="Prenom">{{$eleve->prenom}}</td>
                  <td class="numeric" data-title="Adresse">{{$eleve->adresse}}</td>
                  <td class="numeric" data-title="Numéro telephone">{{$eleve->date_naiss}}</td>
                  <td class="numeric" data-title="Email">{{$eleve->sexe}}</td>
                  <td class="numeric" data-title="Login">{{$eleve->nationnalite}}</td>
                  <td class="numeric"data-title="Password">{{$eleve->niveau_scolaire}}</td>
                  <td class="numeric"data-title="Password">{{$father->nom}}</td>
                   <td>

4 个答案:

答案 0 :(得分:1)

在控制器中:

     public function index(){
               $fathers = Father::all();

               return view('admin.eleves', compact('fathers');
     }

在刀片文件中:

@forelse($fathers as $father)
      <td class="numeric"  data-title="id-parent" >{{$father->id}}</td>
@empty
@endforelse

答案 1 :(得分:0)

发布您的控制器代码。错误是刀片无法识别父变量,因此后端出现了问题。应该看起来像这样。


 class YourController extends Controller
 {

    public function example()
    {
        $father = YourFatherModel::all();

        return view('app.main', compact('father'));
    }

  }


答案 2 :(得分:0)

您可能将变量拼写错误,或者尚未将变量发送到刀片文件。尝试其中之一

$father=Father::all();    
return view('admin.eleves', compact('father'));

OR:

$data['father']=Father::all();
return view('admin.eleves', $data);

答案 3 :(得分:0)

when I added the parent name in a select I want that when I add a student I have to choose his parent the problem is when I display it he shows me every time the first parent id 

这是我的观点

         <tr>
                <th>id-eleve</th>
                  <th>Nom</th>
                  <th>Prenom</th>
                  <th>Adresse</th>
                  <th>Age</th>
                  <th>Sexe</th>
                  <th>Nationnalité</th>

                  <th>Niveau scolaire </th>
                  <th>Niveau scolaire </th>

                   <th>les actions</th>
                </tr>
              </thead>
              <tbody>
                @foreach($eleves as $eleve)
                <tr>

                  <td class="numeric"  data-title="id-parent" >{{$eleve->id}}</td>
                  <td class="numeric"  data-title="Nom">{{$eleve->nom}}</td>
                  <td class="numeric"  data-title="Prenom">{{$eleve->prenom}}</td>
                  <td class="numeric" data-title="Adresse">{{$eleve->adresse}}</td>
                  <td class="numeric" data-title="Numéro telephone">{{$eleve->date_naiss}}</td>
                  <td class="numeric" data-title="Email">{{$eleve->sexe}}</td>
                  <td class="numeric" data-title="Login">{{$eleve->nationnalite}}</td>
                  <td class="numeric"data-title="Password">{{$eleve->niveau_scolaire}}</td>
                  @foreach($fathers as $father)
             <td class="numeric"data-title="Password">{{$father->nom}}{{$father->prenom}}</td>
                   @endforeach


                   <td>
                        <button href="#editEmployeeModal" class="btn btn-theme"  data-target="#editEmployeeModal "data-mytitle="{{$eleve->nom}}" data-myprenom="{{$eleve->prenom}}"   data-myadresse="{{$eleve->adresse}}" data-myage="{{$eleve->date_naiss}}"  data-mysexe="{{$eleve->sexe}}" data-mynationalite="{{$eleve->nationnalite}}"     data-myniveau="{{$eleve->niveau_scolaire}}"  data-catid={{$eleve->id}}  class="edit" data-toggle="modal"  ><i class="material-icons" data-toggle="tooltip" title="Edit">&#xE254;</i> </button>
                        <button href="#deleteEmployeeModal" class="btn btn-theme" data-target="#deleteEmployeeModal" data-catid={{$eleve->id}} class="delete" data-toggle="modal" > <i class="material-icons" data-toggle="tooltip" title="Delete">&#xE872;</i> </button>
                    </td>

                </tr>
              </tbody>
              @endforeach
            </table>
            <div class="text-center">
              {{ $eleves->links() }}
        </div>
            <div class="clearfix">

            <div class="hint-text">Affichage de  <b>5</b> sur <b>25</b> entrées</div>

           <div id="addEmployeeModal"  href="create" class="modal fade">
<div class="modal-dialog">
  <div class="modal-content">
    <form   action="{{route('eleves.store')}}" method="post">
      {{csrf_field()}}
      <div class="modal-header">            
        <h4 class="modal-title">Ajouter un éléve</h4>
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
      </div>
      <div class="modal-body">          
        <div class="form-group">
          <label>nom</label>
          <input type="text"  id="nom" name="nom" class="form-control" required>
        </div>
        <div class="form-group">
          <label>prenom</label>
          <input type="text"  id="prenom" name="prenom" class="form-control" required>
        </div>
        <div class="form-group">
          <label>adresse</label>
          <textarea name="adresse" id="adresse" class="form-control" required></textarea>
        </div>
        <div class="form-group">

          <label for="start">Date Naissance</label>

          <input type="date" id="date_naiss" name="date_naiss"
           value="2018-07-22"
              min="2018-01-01" max="2030-12-31">

      </div>
        <div class="form-group">
          <div>
         <input type="radio" id="sexe" name="sexe" value="une fille"
          checked>
      <label for="sexe">une fille</label>
          </div>

        <div>
     <input type="radio" id="sexe" name="sexe" value="Un garçon">
     <label for="sexe">Un garçon</label>
    </div>

        </div>



<div class="form-group">
          <label>Nationnalité</label>
          <input type="text" name="nationnalite" id="nationnalite" class="form control" required>
        </div> 
        <div class="form-group">
          <label>Niveau Scolaire</label>
          <input type="text" name="niveau_scolaire" id="niveau_scolaire" class="form-control" required>
        </div> 

      </div>

    <select name="father_id">
    @foreach($fathers as $father)
        <option value="{{ $father->id }}">{{ $father->nom }}</option>
    @endforeach  
  </select>
      <div class="modal-footer">
        <input type="button" class="btn btn-default" data-dismiss="modal" value="Annuler">
        <input type="submit" class="btn btn-success" value="Ajouter">
      </div>
    </form>
  </div>
</div>

这是我的控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Eleve;
use App\Father;

class EleveController extends Controller
{
    public function index()
    {
         $eleves = Eleve::paginate(5);
            $fathers = Father::all();
        return view('admin.eleves',compact('eleves', 'fathers'));
    }



    public function create()
    {
    $fathers = Father::all();
    return view('admin.eleves', ['fathers' => $fathers]);
     }



    public function store(Request $request)
    {
        Eleve::create($request->all());


         session()->flash('success',' Cet nouvel éléve a été enregistré avec succés');


           return redirect()->back();
    }


    public function update(Request $request, $id)
    {
        $eleve = Eleve::findOrFail($request->eleve_id);

        $eleve->update($request->all());
        session()->flash('success','Cet éléve a été modifié avec succés');

       return redirect()->back();
    }


    public function destroy(Request $request)
    {
        $eleve = Eleve::findOrFail($request->eleve_id);
     $eleve->delete();
     session()->flash('success','Cet éleve a été supprimé avec succés');
       return redirect()->back();
    }
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Eleve;
use App\Father;
class EleveController extends Controller
{
    public function index()
    {
         $eleves = Eleve::paginate(5);
            $fathers = Father::all();
        return view('admin.eleves',compact('eleves', 'fathers'));
    }



    public function create()
    {
    $fathers = Father::all();
    return view('admin.eleves', ['fathers' => $fathers]);
     }



    public function store(Request $request)
    {
        Eleve::create($request->all());


         session()->flash('success',' Cet nouvel éléve a été enregistré avec succés');


           return redirect()->back();
    }


    public function show($id)
    {

    }




    public function update(Request $request, $id)
    {
        $eleve = Eleve::findOrFail($request->eleve_id);

        $eleve->update($request->all());
        session()->flash('success','Cet éléve a été modifié avec succés');

       return redirect()->back();
    }


    public function destroy(Request $request)
    {
        $eleve = Eleve::findOrFail($request->eleve_id);
     $eleve->delete();
     session()->flash('success','Cet éleve a été supprimé avec succés');
       return redirect()->back();
    }
}

路线

Route::resource('eleves','EleveController');
相关问题