Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1

    [Laravel] Domanda su routes e controller

    ciao!

    ho creato il mio controller con php artisan:
    codice:
    namespace App\Http\Controllers;
    
    use App\Models\Clienti;
    use Illuminate\Http\Request;
    
    class ClientiController extends Controller {
    
        public function index() {
            return Clienti::all();
        }
    
    }
    poi nelle route ho messo questo (come da mille esempi online):
    codice:
    Route::get('/', 'ClientiController@index');
    ma non funziona perchè dice che non trova il controller.

    questo, con il path del namespace completo, funziona:
    codice:
    Route::get('/', 'App\Http\Controllers\ClientiController@index');
    c'è qualcosa che devo settare per evitare di mettere tutto il path??

  2. #2
    Inserisci questo all'inzio del file:

    codice:
    use App\Http\Controllers\ClientiController;
    Tieni conto che dalla 8 è cambiato il formato delle route (vedi documentazione di upgrade per i dettagli).

  3. #3
    ciao!

    si avevo letto, cmq io sono partito direttamente dalla 8.
    ho installato tutto ieri.

    cmq ho fatto così, ma non ha funzionato:
    codice:
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\ClientiController;
    
    Route::group(["prefix" => "clienti"], function () {
        Route::get('/', 'ClientiController@index');
        Route::get('cliente/{id}', 'ClientiController@clienteById');
        Route::post('/add', 'ClientiController@add');
    });

  4. #4
    Se stai usando la 8, allora ti consiglio di leggere la relativa documentazione:

    https://laravel.com/docs/8.x/routing...lt-route-files

    Il modo in cui vengono definite le routes è cambiato. Se vuoi usare delle stringhe invece di array, devi seguire quanto indicato nella guida per l'upgrade:

    https://laravel.com/docs/8.x/upgrade#routing

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    772
    Dalla 8 (che non ho ancora usato) sono cambiate le dichiarazioni nelle route, quindi questa:

    codice:
    Route::get('/', 'ClientiController@index');
    dovrebbe diventare:

    codice:
    Route::get('/', [ClientiController::class, 'index']);


    E così via per le altre usando lo stesso meccanismo.
    Prova e facci sapere.

  6. #6
    ok scusa non avevo capito.

    cosi funziona tutto:
    codice:
    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\ClientiController;
    
    Route::group(["prefix" => "clienti"], function () {
        Route::get('/', [ClientiController::class, 'index']);
        Route::get('/{id}', [ClientiController::class, 'clienteById']);
        Route::post('/add', [ClientiController::class, 'add']);
    });
    grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.