នៅក្នុងមេរៀនទី២នេះ យើងនឹងនិយាយអំពី routes, controllers, views, models ព្រមទាំងទំនាក់ទំនង relationsip របស់វា។
1. Routes
Routes មូលដ្ឋានគ្រិះភាគច្រើនចាប់យក URL មួយ ហើយបន្ទាប់មកវានឹង return value ទៅវិញ។ Value វាអាចជា string, view, controller មួយ។ រាល់ routes ទាំងអស់គឺវាផ្ទុកនៅក្នុង routes/web.php directory។ ដូច្នេះបើយើងចង់បង្កើតឬកែប្រែ routes យើងអាចចូលទៅកាន់ directory នេះហើយកែតម្រូវទៅតាមអ្វីដែលយើងចង់បាន។
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
ពេលដែល Laravel Route ចាប់យក "/" នោះវានឹង return view ដែលមានឈ្មោះថា "welcome" ។
ពេលដែលអ្នកបើក web browser ហើយចូលទៅកាន់ http://laravel.local
វានឹងផ្ដល់លទ្ធផលបែបនេះ៖
លោកអ្នកអាចផ្លាស់ប្ដូរ content នៅក្នុង "welcome.blade.php" ហើយបន្ទាប់មកអ្នកអាច refresh web browser ដើម្បីមើលនូវអ្វីដែលអ្នកបានធ្វើការផ្លាស់ប្ដូរ។
ពួកយើងក៏អាច return តម្លៃជា "string" បានដែរ:
return 'Hello, World!';
});
ពេលដែល Laravel route ចាប់បាន URL "/", ជំនួសឲ្យ view, វានឹង return តម្លៃជា string "Hello, World!" ។
មួយវិញទៀតយើងអាច return តម្លៃទៅឲ្យវាជា controller, ដែល controller នោះមានតួនាទី point ទៅកាន់ view ។ ប៉ុន្តែមុននឹងធ្វើបែបហ្នឹងបានយើងត្រូវទៅស្វែងយល់អំពី controller នៅចំណុចខាងក្រោមសិន។
2. Controller
Controller ជាកន្លែងដែលអ្នករៀបចំអន្តរកម្មនៃ application របស់អ្នក។ ឧទាហរណ៍ថា ពេលដែល router ចាប់បាន URL "/" វានឹង return controller "IndexController" ។
IndexController វានឹងទៅចាប់យកព័ត៌មានដែល route បានធ្វើការស្នើសុំចេញពី database ហើយបន្ទាប់មកទៀត ទិន្នន័យទាំងនោះនឹងត្រូវដាក់ឲ្យត្រូវនឹងទីតាំងទីតាំងដែល view ត្រូវការដើម្បីរៀបចំខ្លួនក្នុងការឲ្យ controller return view នេះទៅកាន់ web browser វិញ។
ចូលទៅកាន់ app/Http/Controllers/, ហើយស្វែងរកឯកសាដែលមានឈ្មោះថា "IndexController.php" កែប្រែពាក្យពេចន៍មួយចំនួនខាងក្រោម៖
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class IndexController extends Controller
{
//
public function index()
{
return 'this is a controller';
}
}
ពួកយើងបានបង្កើតនូវ function មួយដែលមានឈ្មោះថា index() ហើយនៅក្នុង function នោះនឹង return តម្លៃជា string ថា "this is a controller" ។
ដើម្បីតេស្តវាថាដំណើរការឬអត់ យើងត្រូវការបង្កើត router មួយ។ យើងចូលទៅកាន់ web.php ហើយបង្កើត router មួយដូច្នេះ:
យើងក៏អាចបង្កើត IndexController សម្រាប់ return view បានដែរ
{
//
public function index()
{
return view('welcome');
}
}
3. View
មកត្រួតពិនិត្យអំពី "welcome.blade.php" អ្នកនឹងអាចកំណត់ចំណាំវាបានថាជាវាគ្រាន់តែជា HTML file តែប៉ុណ្ណោះ។ View គឺ base ទៅលើ HTML ជាមួយនឹង CSS តាំងតែវាជាអ្វីដែលយើងបានមើលឃើញក្នុង web browser ម្លេះ។ ប៉ុន្តែមានរឿងម្យ៉ាងដែលរាងស្មុគស្មាញបន្តិចនោះគឺ៖
បើសិនជាវាផ្ទុកតែ HTML code។ នោះ blog ទាំងមូលវានឹងក្លាយទៅជាគេហទំព័រ static ហើយវាមិនមែនជាអ្វីដែលយើងចង់បាននោះទេ ដូច្នេះ view នឹងត្រូវ "ប្រាប់" ទៅកាន់ controller នូវព័ត៌មានដែលទៅយកព្រមទាំងកន្លែងដែលដាក់ពួកវា។
ពួកយើងនឹងលម្អិតអំពីវានៅមេរៀនក្រោយ។
4. Model
ចងចាំខ្ញុំបាននិយាយបានទេថា controller គឺជាអ្នកដែលទៅដាក់និងអ្នកទៅទាញយកទិន្នន័យចេញពី database? ចំណុចត្រង់នេះហើយដែល model ត្រូវចាប់កំណើតមក។
រាល់ database table តែងមាន model ដែលត្រូវគ្នានឹងវា ហើយ model នឹងដោះស្រាយរាល់អន្តរកម្មផ្សេងរវាង database table និង controller ។
សេចក្ដីសង្ខេប
ពេលដែលអ្នកវាយបញ្ចូល URL ទៅក្នុង browser។ Router នឹង read ព័ត៌មានទាំងនោះហើយនឹង return នូវ controller ដែលត្រូវគ្នា។ ពេលនោះ controller នឹងទៅចាប់យកទិន្នន័យចេញពី database តាមរយៈ model ហើយដាក់ទៅក្នុង view ដែលត្រូវគ្នានឹងកន្លែងដែល view ត្រូវការ។ ហើយចុងក្រោយ controller នឹង return view នេះទៅកាន់ router ដើម្បីឲ្យ web browser ដំណើរការនូវអ្វីដែល URL request បានផ្ដល់មក។