-
-
Save Marlinc/8be5be61ed30d0b80345f2107278176d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Routes configuration | |
* | |
* In this file, you set up routes to your controllers and their actions. | |
* Routes are very important mechanism that allows you to freely connect | |
* different URLs to chosen controllers and their actions (functions). | |
* | |
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org) | |
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* For full copyright and license information, please see the LICENSE.txt | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* @link http://cakephp.org CakePHP(tm) Project | |
* @license http://www.opensource.org/licenses/mit-license.php MIT License | |
*/ | |
use Cake\Core\Plugin; | |
use Cake\Routing\RouteBuilder; | |
use Cake\Routing\Router; | |
/** | |
* The default class to use for all routes | |
* | |
* The following route classes are supplied with CakePHP and are appropriate | |
* to set as the default: | |
* | |
* - Route | |
* - InflectedRoute | |
* - DashedRoute | |
* | |
* If no call is made to `Router::defaultRouteClass()`, the class used is | |
* `Route` (`Cake\Routing\Route\Route`) | |
* | |
* Note that `Route` does not do any inflections on URLs which will result in | |
* inconsistently cased URLs when used with `:plugin`, `:controller` and | |
* `:action` markers. | |
* | |
*/ | |
Router::defaultRouteClass('Route'); | |
// New route we're adding for our tagged action. | |
// The trailing `*` tells CakePHP that this action has | |
// passed parameters. | |
Router::scope( | |
'/bookmarks', | |
['controller' => 'Bookmarks'], | |
function ($routes) { | |
$routes->connect('/tagged/*', ['action' => 'tags']); | |
} | |
); | |
Router::scope('/', function ($routes) { | |
// Connect the default home and /pages/* routes. | |
$routes->connect('/', [ | |
'controller' => 'Pages', | |
'action' => 'display', 'home' | |
]); | |
$routes->connect('/pages/*', [ | |
'controller' => 'Pages', | |
'action' => 'display' | |
]); | |
// Connect the conventions based default routes. | |
$routes->fallbacks('InflectedRoute'); | |
// Accept routes using json extension. | |
$routes->extensions(['json']); | |
}); | |
/** | |
* Load all plugin routes. See the Plugin documentation on | |
* how to customize the loading of plugin routes. | |
*/ | |
Plugin::routes(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Controller; | |
use App\Controller\AppController; | |
/** | |
* Students Controller | |
* | |
* @property \App\Model\Table\StudentsTable $Students | |
*/ | |
class StudentsController extends AppController | |
{ | |
/** | |
* Index method | |
* | |
* @return \Cake\Network\Response|null | |
*/ | |
public function index() | |
{ | |
$this->paginate = [ | |
'contain' => ['Nationalities'] | |
]; | |
$students = $this->paginate($this->Students); | |
$this->set(compact('students')); | |
$this->set('_serialize', ['students']); | |
} | |
/** | |
* View method | |
* | |
* @param string|null $id Student id. | |
* @return \Cake\Network\Response|null | |
* @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. | |
*/ | |
public function view($id = null) | |
{ | |
$student = $this->Students->get($id, [ | |
'contain' => ['Nationalities'] | |
]); | |
$this->set('student', $student); | |
$this->set('_serialize', ['student']); | |
} | |
/** | |
* Add method | |
* | |
* @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. | |
*/ | |
public function add() | |
{ | |
$student = $this->Students->newEntity(); | |
if ($this->request->is('post')) { | |
$student = $this->Students->patchEntity($student, $this->request->data); | |
if ($this->Students->save($student)) { | |
$this->Flash->success(__('The student has been saved.')); | |
return $this->redirect(['action' => 'index']); | |
} else { | |
$this->Flash->error(__('The student could not be saved. Please, try again.')); | |
} | |
} | |
$nationalities = $this->Students->Nationalities->find('list', ['limit' => 200]); | |
$this->set(compact('student', 'nationalities')); | |
$this->set('_serialize', ['student']); | |
} | |
/** | |
* Edit method | |
* | |
* @param string|null $id Student id. | |
* @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. | |
* @throws \Cake\Network\Exception\NotFoundException When record not found. | |
*/ | |
public function edit($id = null) | |
{ | |
$student = $this->Students->get($id, [ | |
'contain' => [] | |
]); | |
if ($this->request->is(['patch', 'post', 'put'])) { | |
$student = $this->Students->patchEntity($student, $this->request->data); | |
if ($this->Students->save($student)) { | |
$this->Flash->success(__('The student has been saved.')); | |
return $this->redirect(['action' => 'index']); | |
} else { | |
$this->Flash->error(__('The student could not be saved. Please, try again.')); | |
} | |
} | |
$nationalities = $this->Students->Nationalities->find('list', ['limit' => 200]); | |
$this->set(compact('student', 'nationalities')); | |
$this->set('_serialize', ['student']); | |
} | |
/** | |
* Delete method | |
* | |
* @param string|null $id Student id. | |
* @return \Cake\Network\Response|null Redirects to index. | |
* @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. | |
*/ | |
public function delete($id = null) | |
{ | |
$this->request->allowMethod(['post', 'delete']); | |
$student = $this->Students->get($id); | |
if ($this->Students->delete($student)) { | |
$this->Flash->success(__('The student has been deleted.')); | |
} else { | |
$this->Flash->error(__('The student could not be deleted. Please, try again.')); | |
} | |
return $this->redirect(['action' => 'index']); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment