我的git rebase -i --root
中有两种方法。第一个称为callsController
,它显示数据库表中的所有记录,如下所示:
newCall
此功能运行良好,并且所有记录在我的视图中均已成功检索。
问题出在第二种方法public function newCall(){
$new_calls = new_calls::all(); //fetches everything in the new_calls table in the database
return view('calls.newCall')->with('new_calls', $new_calls); //passes it to the view
}
上,其目的是当从viewCall
列表中单击名称时显示单个call
的数据。
目前,我只有这个:
newCalls
我计划在显示在public function viewCall(){
return view('calls.viewCall');
}
中的同时使用一些静态文本来格式化数据库中的数据(用于特定调用)。
我不太确定要在web.php中放什么,所以我的路线看起来像这样:
viewCall.blade.php
有人可以帮助我完成这项工作吗?当我单击呼叫名称时,我只想查看数据库中记录的关联数组。我需要在路线和视图中添加什么?
这是我的Route::get('/calls/newCall', 'CallsController@newCall');
Route::get('/calls/viewCall/{id}', 'CallsController@viewCall')->name('viewCall');
newCall.blade.php
这是我的<div class="table-responsive">
<table class="table no-margin table-striped">
<thead>
<tr>
<th>Terminal ID</th>
<th>Terminal Name</th>
{{-- <th>Fault Description</th> --}}
<th>Call Logged On</th>
<th>ATM Variant</th>
</tr>
</thead>
<tbody>
@if(count($new_calls) > 0)
@foreach($new_calls as $calls)
<tr>
<td><a href="/calls/viewCall/{{$calls->id}}" title="view more details">{{$calls->terminal_id}}</a></td>
<td>{{$calls->terminal_name}}</td>
{{-- <td style="width:350px">{{$calls->fault_description}}</td> --}}
<td>{{$calls->created_at}}</td>
<td>{{$calls->atm_variant}}</td>
</tr>
@endforeach
@else
<h1>No new Calls</h1>
@endif
</tbody>
</table>
</div>
viewCall.blade.php
nb:我也尝试过使用<address>
<strong>{{$new_call->client_name}}</strong><br>
{{$new_call->address}}<br>
<b>Phone: {{$new_call->phone}}</b> <br>
<b>Email: {{$new_call->email}}</b>
</address>
,但它返回的是未定义的变量:每种情况下的调用和new_calls
答案 0 :(得分:1)
您可以执行以下操作:
public function viewCall($id)
{
return view('calls.viewCall', ['call' => new_calls::findOrFail($id)]);
}
这将从路由中获取id
,并调用函数以找到具有给定id
的对象。
如果您在处理视图中的变量时遇到问题。尝试使用dd
检查对象。试试这个:
public function viewCall($id)
{
$new_call = new_calls::find($id);
dd($new_call);
}
参考:https://laravel.com/docs/5.7/controllers#basic-controllers
答案 1 :(得分:0)
我也建议您在控制器上命名命名,路由模型绑定和类型提示。
然后,您将得到以下内容:
On
和路线如下:
public function viewCall(NewCall $newcall)
{
return view('calls.viewCall')->with($newcall);
}
答案 2 :(得分:0)
您需要做的是通过new_calls
获得ID
模型。您可以这样做:
routes / web.php
Route::get('/calls/viewCall/{id}', 'CallsController@viewCall');
CallsController.php
public function viewCall($id) // the id in the url
{
$new_call = new_calls::find($id);
return view('calls.viewCall')->with('new_call', $new_call);
}
在您看来(我假设您正在遍历所有调用以显示它们)创建一个链接。
// your existing foreach
@foreach($x as $y)
<a href="/calls/viewCall/{{$y->id}}">View Call</a>
@endforeach