2016-03-18 11 views

Antwort

1

Try this:

href="{{ URL('/dashboard/medicinepending/'.$val->id)}}" 
9

Versuchen Sie folgendes:

{{ url('/dashboard/medicinepending/', [$val->id]) }} 

Aber es ist eine schlechte Idee, relative Pfade zu verwenden, denn wenn Sie möchten, URL-Schema ändern, müssen Sie manuell Dutzende oder Hunderte finden verlinkt Ihre Ansichten und Controller und ändert sie manuell. In diesem Fall wirst du definitiv vergessen, einige von ihnen zu ändern und einige Seiten deiner App werden kaputt gehen.

Eine gute Praxis ist es, Verbindungen zu routen zu verwenden:

{{ route('name.route', ['id' => $val->id]) }} 

oder Links zu Aktion:

{{ action('[email protected]', $val->id) }} 
+0

Wirkliche Verwendung von URL ist die richtige functi weil die anderen Beispiele, die Sie angegeben haben, die URL-Komponente durchlaufen. – ash

+0

@ash, bitte lesen Sie den Teil der Antwort, wo ich erkläre, warum die Verwendung von 'url()' eine schlechte Idee ist. –

+0

Ich habe gelesen, was du gesagt hast, und was du gesagt hast ist falsch lol. Route und Aktion werden Benutzer URL:/ – ash

1

Das ist für mich arbeiten:

<a href="{{asset('/dashboard/medicinepending/'.$val->id)}}"></a> 
2

Übrigens stimme ich auch mit @Alexey Mezenin überein, Sie sollten die route() - Hilfsfunktion anstelle von url() bevorzugen, route() gibt Ihnen mehr Flexibilität, um die Anzahl der Parameter zusammen mit der Haupt-URL zu übergeben.

Wie auch immer, Sie sollten die Blade-Code-Syntax ({{}}) nicht wieder in ein paar Klammern und eine weitere Sache verwenden. Versuchen Sie, Anfang und Ende im ersten Teil der URL zu vermeiden.

Sie sollten Ihren Code mit dem folgenden aktualisieren, dies wird hoffentlich funktionieren.

href = "{{url ('Armaturenbrett/medicinepending'. $ Wer-> id)}}" OR

href = "{{url ('Armaturenbrett/medicinepending', $ val -> id)}}“

+0

Ich habe 'url',' route' und 'action' erklärt ALLES wird durch' app ('url') 'analysiert, was eine Instanz von' UrlGenerator' zurückgibt, dies erlaubt mehrere Parameter ohne zu entkommen. – ash

+3

Asche, ich habe auf diese Frage früh auf kurze Weise nur für sein Verständnis geantwortet, es ist besser, dass du es ausführlich erklärt hast. Hope @Matheshwaran kann meinen Standpunkt leicht verstehen. –

4

Schnell Antwort

Wie bereits die Art und Weise erläutert, in dem eine URL innerhalb eines Blade Vorlage erstellen können Sie die url helper verwenden; für Ihr Beispiel würde diese Arbeit:

{{ url('dashboard/medicinepending/', [$val->id] }} 

Best Practice

Es wird nicht empfohlen url, route oder sogar action zu verwenden, wenn eine URL für Ihre Ansichten zu bauen. Dies liegt daran, dass sich die URLs nicht ändern. Wenn dies der Fall ist, sollten Sie 301-Weiterleitungen einrichten, damit Ihr SEO-Score gültig und gut bleibt.

So einfach so etwas wie:

<a href="/dashboard/medicinepending/{{ $val->id }}"> 

Aber wenn Sie wirklich einen Wrapper verwenden möchten, dann ist url die zweitbeste Sache.

Der einzige Zweck dieser Helfer sind für E-Mails oder Befehle über artisan, ausgelöst, wenn die cron über die URL nicht nur wissen, was in der Config definiert: app.url

Erklärung

Die Art und Weise in denen URLs mit Laravel erstellt werden, wird durch Voranstellen der Zeichenfolge mit dem Wert app.url config; found: inside config/app.php

Dies ist hauptsächlich für die CLI, wenn Sie Cron-Prozesse ausführen und E-Mails aus einer Warteschlange mit Links generieren, daher könnte dies innerhalb Ihrer Anwendung verwendet werden. Ansonsten verwenden Sie es überhaupt nicht.

Verwenden Sie die url Helfer ist gut, weil Sie den Wert der app.url Config von Ihrem eigenen Service Provider ändern können. Dies ist sehr nützlich, wenn Sie eine Website in mehreren Sprachen haben und/oder eine Website-Sprache basierend auf dem Domänennamen laden. Beispiel:

  • domain.com - würde die US-Website
  • domain.uk laden - Großbritannien Website
  • domain.eu laden würde - eine generische EU-Website
  • domain.de laden würde - würde laden die deutsche Website
  • domain.jp -
  • etc

der japanischen Website würde laden Wie bereits erwähnt, können Sie URLs aus einer Route erstellen; Dies gilt nur, wenn Sie Ihre Routen benennen, was nicht immer der Fall ist.

{{ route('name.route', ['id' => $val->id] }} 

Dies wird die Route durch den Namen route.name und dann analysiert, das Endpunktes durch app('url'), die die UrlGenerator sein geschehen finden - so ist dies nicht besser als die url Helfer - aus nicht gehen von deinem Weg, alle Wege zu benennen - das ist schlechte Übung.

Eine andere Praxis genannt, die auch durch die Bereitstellung der Klasse und Aktion eine Route zu finden, mit action keine gute Idee ist:

{{ action('[email protected]', $val->id) }} 

Dies ist eine schlechte Idee, es sei denn, MyController ist eigentlich eine Schnittstelle NICHT ein physische Klasse, in der Sie Inversion der Kontrolle benötigen, um die Klasse zu injizieren, die implementiert MyController andernfalls Ihre Anwendung wird nicht mit der

+0

Wenn Marketing entscheidet,/posts/{id} nach/stories/{id} mit action (...) zu verschieben, würde eine Änderung an der Datei "routes.php" an die neue URL und eine einzeilige Weiterleitung für alte URLs erforderlich sein . Die Verwendung von absoluten URLs würde Hunderte von Änderungen erfordern. –

+0

@DustinGraham Mit 'action()' geben Sie den vollen Namespace für den Controller an, was keine gute Idee ist, wenn Sie Controller über den DI überschreiben/ersetzen. Für ein internes System mit einem Bereich ist es gut und gut, IoC zu vermeiden, aber für Open-Source-Projekte und skalierbare Unternehmenssysteme ist das überhaupt nicht gut. – ash

+0

Ich denke, das ist ein gutes Argument für die Verwendung benannter Routen. 'route ('vendor.target')' Ich habe keinen der beiden Anforderungen sehr oft, aber ich denke, URL-Änderungen sind für mich wichtiger als der Austausch von Controllern. Es wäre schön gewesen, hätte wordpress den Pfad/wp-admin/route oder wp-login.php nicht hart codiert. Es würde es viel einfacher machen, es herum zu bewegen, um Penetrationsspam zu vermeiden. Ich verstehe, was Sie sagen, und DI ist wertvoll. Danke für die Einsicht. –

Verwandte Themen