Routes - são rotas entre uma URL no navegador e um recurso do laravel (texto, view, etc)
Detalhes em:
https://laravel.com/docs/5.4/routing
e
https://www.youtube.com/watch?v=0Y6l7n791q4&list=PLVSNL1PHDWvTQnUQjhBEzY2ZSzJTR9zcZ&index=7
Rotas
Tipos de routes
HTTP Ação
get leitura
post gravação
put atualização
delete delete
No Laravel 5 as rotas ficam no diretório routes (no raiz), basicamente no arquivo web.php
Exemplo padrão
routes/web.php
Route::get('/', function () {
return view('welcome');
});
http://localhost:8000/contato
Route::get('/', function () {
return view('contato');
});
http://localhost:8000/empresa
Route::get('/', function () {
return view('empresa');
});
http://localhost:8000/especializacao
Route::get('/', function () {
return view('especializacao');
});
Actions Handled By Resource Controller
Verb URI Action Route Name
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} destroy photos.destroy
Route::resource('photo', 'PhotoController', ['only' => [
'index', 'show'
]]);
Route::resource('photo', 'PhotoController', ['except' => [
'create', 'store', 'update', 'destroy'
]]);
Route::resource('photo', 'PhotoController', ['names' => [
'create' => 'photo.build'
]]);
Adicionar ao arquivo web acima:
Route::get('foo', function () {
return 'Hello World';
});
Chamar pelo navegador
http://127.0.0.1:8000/foo
Retornará
Hello World
Se o return fosse:
return view('welcome');
Ele chamaria o arquivo resources/views/welcome.blade.php
Controllers - app/Http/Controllers
Models - app/
Views - Resources/views
Routes - routes/web.php
Existe relação entre rotas e views
'middleware' => 'auth' - força o login
Criar a view index.blade.php em:
resources/views/painel/home
Com apenas:
<h1>Entrada do Painel</h1>
Criar view similar para os outros routes.
Criar a view index.blade.php em:
resources/views/painel/financeiro
Com apenas:
<h1>Financeiro do Painel</h1>
Criar a view index.blade.php em:
resources/views/painel/usuarios
Com apenas:
<h1>Usuários do Painel</h1>
Chamar assim:
http://127.0.0.1:8000/painel/home
http://127.0.0.1:8000/painel/financeiro
http://127.0.0.1:8000/painel/usuarios
Com auth
Route::get('/auth/login', function(){
return 'Form de Login';
})
http://127.0.0.1:8000/auth/login
Neste caso quando o usuário abrir o raiz do site retornará a view welcome.
A view welcome.blade.php encontra-se em:
resources/views
Criar view de teste
resources/views/teste.blade.php
Contendo:
<h1>Apenas um teste</h1>
Alterar o route para que chame a view "teste" ao invés de welcome.
Podemos retornar um texto ao invés de uma view
Route::get('/', function () {
return 'Olá, como vai?';
});
Rota com seleção de tipo
Route::match['post', 'get'], '/match', function(){
return 'Minha rota';
});
Rota para receber qualquer tipo
Route::any('any', function () {
return 'Rota qualquer';
});
Route::get('produtos', function () {
return 'Listagem dos produtos';
});
Editar o routes/web.php e adicionar:
Criar um diretório "painel" em views e as views abaixo.
Route::group(['prefix' => 'painel', 'middleware' => 'auth'], function((){
Route::get('/', function(){
return view('painel.home.index');
})
Route::get('financeiro', function(){
return view('painel.financeiro.index');
})
Route::get('usuarios', function(){
return view('painel.usuarios.index');
})
});
'middleware' => 'auth' - restringir acesso somente via login
Passando parâmetro
Route::get('produto/editar/{id}', function ($id) {
return "Editar o produto {$id}";
});
Valores default
Route::get('produto/deletar/{id?}', function ($id * '') {
return "Deletar o produto {$id}";
});
Normalmente usamos na prática routes com controllers.
Route::get('profile', 'UserController@show')->middleware('auth');
Route::get('produtos', 'ProdutosController@index');
Route::get('produtos/create', 'ProdutosController@create');
// Para store
Route::post('produtos/create', 'ProdutosController@store');
Route::get('produtos/{idProd}', 'ProdutosController@show');
Route::get('produtos/{idProd}/{idProd2}', 'ProdutosController@showTwo');
Route::get('produtos/edit/{idProd}', 'ProdutosController@edit');
Route::controller('/carros', 'CarrosController');
Comments fornecido por CComment