查看引用它的自我 - Laravel 5.5

时间:2017-12-07 16:57:51

标签: php laravel

所以我是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 - 显然这会导致错误。那为什么要这样做呢?

我该如何预防?

1 个答案:

答案 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>