我正在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' );
有人可以解释我的错误吗?为什么不将响应返回到我的表中?谢谢
答案 0 :(得分:0)
在TelephoneController @ store中,
你能
return [$nom, $site, $groupe];
并在将数据传递到视图之前查看其中的数据?
然后尝试,
return view('telephone', compact('nom', 'site', 'groupe');
在您看来,只需回显变量{{$ nom}},您应该就能看到它们
希望这会有所帮助!