Jak przejsc do innego widoku w Laravel ?

0

Cześć! Mam widok welcome, gdzie link, któy jak klikne to powinien przenosić do widoku hello i wyświetlać tekst "Witaj na stronie". Szukam błedu i nie moge znaleŹĆ, moze ktos pomoze, bo dopiero zaczynam sie uczyc laravela.
plik welcome.blade.php

 <body class="antialiased">
                            <a href="{{ url('/hello') }}">Druga strona</a>
    </body>

plik hello.blade.php

 <body>
        @isset($hello)
            <h2>{{ $hello }}</h2>
        @endisset

        <a href="{{ url('/') }}">Wróć na główną</a>
    </body>

plik ArticleController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller
{
    public function index()
    {
        return view("hello")->with("hello", "Witaj na stronie!");
    }
}

plik web.php

Route::get('/', function () {
    return view('welcome');
});

Route::get('/hello', 'ArticleController@index');
0

Czemu przesyłasz metodą with stringi zamiast tablicę?

0

Opisz co się dokładnie dzieje i która wersja laravela.

Podejrzewam że masz problem w routingu. zmień ostatnią linię na:

Route::get('/hello', [ArticleController::class, 'index']);
0

@mr_jaro:
Zmieniłem tak w routingu, i teraz ciągle jestem na stronie hello i nie mogę wrócić na strone startową

Route::get('/', function () {
    return view('welcome');
});

Route::get('/', function () {
    return view('hello');
});



Route::get('/hello2', [ArticleController::class, 'index']);
0

Jaka uzywasz wersje laravela ?

1

Zobacz co teraz zrobiłeś... masz 2 razy link "/" usuń drugi route i będzie ci wszystko chodzić

0

@mr_jaro:

Takie cos tez nie działa. Teraz jak klikne na głownej stronie link do pojawia się bład Illuminate\Contracts\Container\BindingResolutionException
Target class [ArticleController] does not exist.

Route::get('/', function () {
    return view('welcome');
});


Route::get('/hello', 'ArticleController@index');
0

omg... czemu teraz wywaliłeś to co ja ci podałem???

Twój rounting powinien wyglądać tak:

use App\Http\Controllers\ArticleController;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/hello', [ArticleController::class, 'index']);
0

wejdz do pliku web.php i dodaj

<?php
namespace App\Http\Controllers;

a jak nie chcesz tego dodawac to dodaj

Route::get('/hello', [App\Http\Controllers\ArticleController::class, 'index']);

Tak to rut nie wie gdzie ma aszukac twojego ArtickeController

i wywal to

use App\Http\Controllers\ArticleController;

bo bys musial pisac do kazdego ruta taka sciezke z use wiec lepiej daj namespace

1 użytkowników online, w tym zalogowanych: 0, gości: 1