post方法中的php搜索表单未返回数据

时间:2019-01-04 11:34:23

标签: php laravel eloquent

我正在Laravel 5.6中使用php建立搜索功能,起初我在get方法中创建了一个表单,并且运行良好,但我需要将其置于post方法中,但我的问题是根本没有数据返回。我现在迷路了,因为我不明白为什么它不起作用,有人可以帮助我了解我的错误在哪里吗?谢谢(对不起,如果我的英语不好,我是法国人!)

这是我的控制器

<?php

 namespace App\Http\Controllers;

 use App\Telephone;
 use  Illuminate\Http\Request;


 class TelephoneController extends Controller{

 public function index(Request $request){
    $nom = $request->input('nom');
    $site = $request->input('site');
    $groupe = $request->input('groupe');

    $listSite = Telephone::query()
        ->selectRaw('Site')
        ->groupBy('Site')
        ->get();

    $listGroup = Telephone::query()
        ->selectRaw('Groupe')
        ->groupBy('Groupe')
        ->get();

    if (empty($_POST['submit'])) {
        $query = Telephone::query()
            ->select('*')
            ->orderBy('Site')
            ->orderBy('Groupe')
            ->get();
    } else {
        $query = Telephone::query()
            ->where('Nom', 'LIKE', '%' . $nom . '%')
            ->orWhere('Site', 'LIKE', '%' . $site . '%')
            ->orwhere('Groupe', 'LIKE', '%' . $groupe . '%')
            ->orderBy('Site')
            ->orderBy('Groupe')
            ->get();
    }
    return view('telephone.index', ['query' => $query, 'listSite' => $listSite, 'listGroup' => $listGroup, 'nom' => $nom, 'site' => $site, 'groupe' => $groupe]);
}

public function store(Request $request)
{
    $nom = $request->nom;
    $site = $request->site;
    $groupe = $request->groupe;

    return redirect('telephone')->with($nom, $site, $groupe);
}
}

这是我的观点

<h2 class="text-center titre">Répertoire d'entreprise </h2>
{{ Form::open(['method'=>'POST','class'=>'col-lg-12','role'=>'recherche']) }}
{{ csrf_field() }}

<div class="row formulaire">
   <div class="form-group col-lg-6 ">
            {!! Form::label('nom', 'Recherche par nom : ') !!}
            <input type="text" name="nom" class="form-control" id="nom" value="{{$nom}}"
                   placeholder="Recherche ...">
        </div>

        <div class="form-group col-lg-2">
            {!! Form::label('site', 'Site ') !!}
            <select class="form-control" id="selectSite" name="site" value="{{$site}}">
                <option selected disabled>site</option>
                @foreach($listSite as $site)
                    <option>{{$site->Site}}</option>
                @endforeach
            </select>
        </div>
        <div class="form-group col-lg-2">
            {!! Form::label('groupe', 'Groupe ') !!}
            <select class="form-control" id="selectGroupe" name="groupe" value="{{$groupe}}">
                <option selected disabled>...</option>
                @foreach($listGroup as $list)
                    <option value="{{$list->Groupe}}">{{$list->Groupe}}</option>
                @endforeach
            </select>
        </div>
        <div class="input-group col-lg-2">
            {{ Form::submit('Recherche', ['class'=>'btn btn-light','type'=>'submit','name'=>'submit'])}}
        </div>
        {!! Form::close() !!}
   </div>
<div class="responsive-table-line">
    <table class="table table-hover table-sm table-condensed table-body-center">
        <thead class="thead-dark">
        <tr>
            <th scope="col">Nom</th>
            <th scope="col">Poste</th>
            <th scope="col">N°interne</th>
            <th scope="col">N°externe</th>
            <th scope="col">Portable</th>
        </tr>
        </thead>
        <tbody>
        <?php $site = ""; $groupe = "";?>
        @foreach(   $query as $row)
            @if($row->Site != $site)
                <tr>
                    <td colspan="5" class="table-secondary"><h3 class="site">{{$row->Site}}</h3></td>
                </tr>
            @endif
            @if($row->Groupe != $groupe && $row->Groupe != "")
                <tr>
                    <td colspan="5" class="table-active "><p class="groupe">{{$row->Groupe}}</p></td>
                </tr>
            @endif
            <tr>
                <td id="nom">{{$row->Nom}}</td>
                <td>{{$row->Fonction}}</td>
                <td>{{$row->Poste_interne}}</td>
                <td>{{$row->Poste_externe}}</td>
                <td>{{$row->Portable}}</td>
            </tr>
            <?php $site = $row->Site; $groupe = $row->Groupe?>
        @endforeach
        </tbody>
    </table>
</div>

web.php很简单

Route::resource('/telephone', 'TelephoneController' );

有人可以解释我的错误吗?为什么不将响应返回到我的表中?谢谢

1 个答案:

答案 0 :(得分:0)

在TelephoneController @ store中,

你能

return [$nom, $site, $groupe];

并在将数据传递到视图之前查看其中的数据?

然后尝试,

return view('telephone', compact('nom', 'site', 'groupe');

在您看来,只需回显变量{{$ nom}},您应该就能看到它们

希望这会有所帮助!