Ich habe verwendet, wenn die Bedingungen in href
und in a
blockieren.Laravel View - bessere Lesbarkeit
Wie würden Sie den Code für die Lesbarkeit sauberer machen?
Ich habe verwendet, wenn die Bedingungen in href
und in a
blockieren.Laravel View - bessere Lesbarkeit
Wie würden Sie den Code für die Lesbarkeit sauberer machen?
diesen Status Angenommen ist ein Modell (auch wenn Sie es auf, was auch immer setzen könnte es ist, die einen Status hat).
Ist es möglich, es irgendwie global zu machen? Einige Modelle haben auch aktiviert/deaktiviert - zum Beispiel "$ customer-> enabled" –
Schreibe die Funktionalität in ein Merkmal oder einen Basis-Controller. Ich werde ein Merkmalsbeispiel hinzufügen. –
Verwenden Sie ternäre Operationen "?:" Anstelle von konventionellen if else-Anweisungen. Beziehen Sie sich auf Chagnes, die ich sonst mit ternären Operatoren ersetzt hätte.
<a type="button" class="btn btn-sm text-complete" href="/settings/statuses/{{$status->id}}/{{$status->enabled == 0 ? enable : disable }}">
{{$status->enabled == 0 ? enable : disable }}
</a>
Notwendigerweise eine subjektive Antwort, und ich persönlich bin ein Fan von Mikro-Ansichten, so dass ich vielleicht eine Unteransicht definieren, die ein Objekt übernimmt die in der Lage sein, seinen Status geändert zu haben.
// status-display.blade.php
@if ($object instanceof StatusInterface)
@if ($object->enabled)
Disable
@else
Enable
@endif
@else
Unknown
@endif
// foo.blade.php
<a type="button" class="btn btn-sm text-complete" href="/settings/statuses/{{$status->id}}/">
@include('status-display', [ 'object' => $status ])
</a>
// bar.blade.php
@include('status-display', [ 'object' => $customer ])
hat den Vorteil, dass für die Anzeige Einzelpunktwechsel mit dem „Status“ zugeordnet der Sache sowie Misch-und-Matching, wo diese Statusanzeige im Layout angezeigt wird. (Dh, Sie könnten nicht nur wollen, dass es in einem <a>
, aber vielleicht auch ein <div>
oder ein <span>
.
Das ist wirklich eine gute Idee, aber '$ status' (vom Modell) Name könnte variieren, aber die Logik ist die gleiche Aktivieren/Deaktivieren. Zum Beispiel könnte ich ein Kundenmodell haben, das auch '$ customer-> enabled' enthält - wie würdest du das machen? –
Ich würde die Klasse eine 'Schnittstelle' implementieren lassen, die anzeigt, dass sie das' enabled'-Merkmal hat, dann können Sie alles übergeben, das dieses Verhalten unterstützt. – bishop
Vielleicht eine URL-Eigenschaft (über einen Accessor vielleicht) auf Ihr '$ status'-Objekt.' Href = "{{$ status-> toggleUrl}}" ' –
@BenSwinburne Ich denke, das bedeutet, ich müsste gehen durch die $ status-Schleife in einem Repo oder Modell und fügen Sie einen href-Link hinzu –
Wenn '$ status' sich auf ein redegewandtes Modell bezieht, können Sie einen Accessor verwenden (https://laravel.com/docs/master/eloquent-mutators#accessors -und-Mutatoren) zu generieren Sie eine Eigenschaft im laufenden Betrieb. –