• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Code Review mojego rozwiązania w Laravelu

VPS Starter Arubacloud
0 głosów
124 wizyt
pytanie zadane 18 marca 2020 w PHP przez Pico Obywatel (1,330 p.)

Witam, chcialbym was poprosić o opinię mojego rozwiązania dot. widoków w laravelu.

Tutaj kod UserPagesController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\posts;


class UserPagesController extends Controller
{
    public function index()
    {
      $this->setting("title", "Strona Główna");
      return $this->site()->withPosts(DB::table('posts')->get());
    }
}
?>

A tutaj Controller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    private $settings;
    public function __construct()
    {
      $this->settings["title"] = "Bloggers";
      $this->settings["head"] = "Default";
      $this->settings["navbar"] = "Default";
      $this->settings["content"] = "Main";
    }

    public function setting($key, $value)
    {
      $this->settings[$key] = $value;
    }

    public function site()
    {
      return view("User")->withSettings($this->settings);

    }
}

 

1 odpowiedź

0 głosów
odpowiedź 18 marca 2020 przez eunstachy Stary wyjadacz (14,140 p.)
Dobrze by było abyś opisał jeszcze jaki problem ten kod rozwiązuje. Podejrzewam, że chcesz mieć na różnych stronach identyczne bloki różniące się tylko tytułem (lub coś podobnego). Jeśli tak, to w laravel'u 7 wprowadzono coś takiego jak komponenty. Myślę, że zastosowanie ich będzie dużo lepszym rozwiązaniem.
komentarz 18 marca 2020 przez Pico Obywatel (1,330 p.)
Na różnych podstronach ma być inny kontent i tytuł. sekcja head i navbar zazwyczaj są takie same, jednak na wszelki wypadek istnieje opcja ustawienia czegoś innego.
komentarz 18 marca 2020 przez eunstachy Stary wyjadacz (14,140 p.)

To tak jak mówiłem, możesz spróbować użyć komponentu w laravelu. 

A zamiast 

DB::table('posts')->get()

Możesz użyć eloquent na przykład (zakładam, że model nazywa się Post):

Post::all()

 

komentarz 19 marca 2020 przez Pico Obywatel (1,330 p.)
Powiem tak spojrzałem na te komponenty i jednak moje rozwiązanie wydaje mi się wyglądać lepiej, jednak rozwiązanie z modelem Posta na pewno wykorzystam, bo rzeczywiście jest to krótszy zapis

Podobne pytania

+1 głos
0 odpowiedzi 260 wizyt
pytanie zadane 9 kwietnia 2021 w PHP przez Lopus Początkujący (360 p.)
+3 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 9 września 2022 w C# przez Artur Koniec Gaduła (3,670 p.)
0 głosów
2 odpowiedzi 434 wizyt
pytanie zadane 19 sierpnia 2021 w Nasze projekty przez Layoutowiec Mądrala (5,470 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...