所以我是laravel的新手。我试图使用一个视图,但它不断引用自己的链接。
见下文我的意思
所以我有一条路线"客户"
Route::get('customers/{cid?}', [
'uses' => 'customers@getCustomerView'
])->name('customers');
在这条路线中你可以看到我引用了一个控制器getCustomerView。使用可选的CID,因为有人可能只想查看客户列表。然后选择他们的客户。所以这是控制器功能
public function getCustomerView($cid = null){
$activeCustomer = array();
if(!empty($cid)){
// do middleware to get customer active detail
$activeCustomer = array(
'company' => 'Company '.$cid,
'fname' => 'Test',
'lname' => 'test'
);
}
return view('customers.view', [
'title' => 'Customer List',
'cid' => $cid,
'activeCustomer' => $activeCustomer,
'clist' => [
['company'=>'Company 1', 'fname' => 'Bob', 'lname' => 'Smith'],
['company'=>'Company 2', 'fname' => 'Julie', 'lname' => 'Reid'],
['company'=>'Company 3', 'fname' => 'Tony', 'lname' => 'Tima']
]
]);
}
当我加载http://domain/customers时 - 一切正常。
在我的customers.view中,我将以下内容循环并将数组放入表中。稍后我将使用一些中间件或自我功能从数据库中获取数据。现在我只是使用硬化阵列。
@foreach($clist as $key=>$customer)
<tr>
<td>{{$key+1}}</td>
<td><a href="customers/{{$key+1}}">{{$customer['company']}}</a></td>
<td>{{$customer['fname']}}</td>
<td>{{$customer['lname']}}</td>
</tr>
@endforeach
问题在于。一旦我点击了一个客户。页面加载正常。 http://domain/customers/1 - 但如果我点击其他客户就可以执行此操作
http://domain/customers/1/customers/2 - 显然这会导致错误。那为什么要这样做呢?
我该如何预防?
答案 0 :(得分:1)
使用它:
<td><a href="{{ route('customers' , [$key+1]) }}">{{$customer['company']}}</a></td>
它会生成一个完整的网址,例如http://domain/customers/1
但你可以这样做:
<td><a href="/customers/{{$key+1}}">{{$customer['company']}}</a></td>