2017-12-07 14 views
1

Also ich bin neu in Laravel. Ich versuche eine Ansicht zu verwenden, aber sie verweist immer wieder auf Links.View Referenzieren selbst - Laravel 5.5

Siehe unten, was ich

bedeuten So habe ich eine Strecke "Kunden"

Route::get('customers/{cid?}', [ 
    'uses' => '[email protected]' 
])->name('customers'); 

In dieser Route, wie Sie mir Referenz einen Controller getCustomerView sehen können. Mit einer optionalen CID, da jemand nur eine Liste von Kunden sehen möchte. Dann wähle ihren Kunden. Hier ist also die Reglerfunktion

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'] 
       ] 
     ]); 
    } 

Als ich http://domain/customers laden - alles funktioniert.

In meiner customers.view habe ich das folgende, dass Schleifen und puts das Array in eine Tabelle. Später werde ich etwas Middleware oder Self-Funktion verwenden, um Daten aus der Datenbank zu bekommen. Fürs Erste verwende ich nur ein Härtungs-Array.

@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 

Das Problem liegt. Sobald ich auf einen Kunden klicke. Seite lädt gut. http://domain/customers/1 - Aber wenn ich auf einen anderen Kunden klicke, tut es das

http://domain/customers/1/customers/2 - offensichtlich würde dies einen Fehler verursachen. Warum macht es das?

Wie kann ich das verhindern?

+0

Falls Sie eine Freizeit haben, müssen Sie möglicherweise um dies zu lesen [href: relativer Pfad vs. absoluter Pfad] (https://stackoverflow.com/questions/10659459/start-with-a-forward-slash-in-html-for-href) – Chay22

+0

Es ist überhaupt kein Laravel , du ca Weitere Informationen finden Sie unter [diese Antwort] (https://stackoverflow.com/a/10659501/1347094). – Torv

+0

ja. Jetzt verstehen. Ich weiß nur, wie manchmal Laravel beim Referenzieren von Dateien Sie URL oder Asset verwenden müssen. Also dachte ich mir das selbe. Freut mich zu hören, dass es so einfach ist. Danke – GrafixMastaMD

Antwort

1

Verwendung dieses:

<td><a href="{{ route('customers' , [$key+1]) }}">{{$customer['company']}}</a></td> 

wird es eine vollständige URL wie http://domain/customers/1

erzeugen, aber Sie können einfach das tun:

<td><a href="/customers/{{$key+1}}">{{$customer['company']}}</a></td> 
+0

Danke. Ich mag die erste Alternative, also nutze ich die Routenfunktion. Vielen Dank – GrafixMastaMD