Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

A única maneira de ter um amigo é ser um. (Ralph Waldo Emerson)

Routes no Laravel

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

Novo Testamento

Porque o Filho do homem virá na glória de seu Pai, com os seus anjos; e então dará a cada um segundo as suas obras.
(Mt, 16:27)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper