Laravel 514 + Bootstrap 334 笔记四:Laravel 控制器
在前文中,我们把用户的请求响应逻辑放在路由中处理,实际情况下这不现实,也没有前方代码那么简单。
而大部分情况下,用户的请求操作是放在Controller中处理的(这不包含业务处理逻辑)。
Laravel 的所有控制器是在 app/Http/Controllers 目录中。
1 创建简单的控制器
1.1 无参数的控制器
在目录 app/Http/Controllers 目录中新建文件 HomeController.php,代码如下:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw() { return view('hw'); } }
在 resources/views 下新建视图 hw.php,内容如下:
Hello World!
修改 routes.php,修改后的代码如下:
<?php Route::get('/', function () { return view('welcome'); }); Route::get('/hw', 'HomeController@hw');
打开浏览器访问:http://localhost:801/hw,如下图示:
1.2 控制器向视图传递参数
当Controller需要向View传递参数时,是这样的,修改控制器的hw方法:
public function hw() { return view('hw',['name'=>'CBW']); }
[<?php echo $name; ?>],您好!
1.3 控制器从路由读取参数并传递
当控制器需要从路由获取参数时,是这样的,修改上例示的路由代码段:
Route::get('/hw/{name}', 'HomeController@hw');
public function hw($name) { return view('hw',['name'=>$name]); }
2 路由器深入
2.1 控制器和命名空间
一般情况下,一个应用系统将由多个子项目组成,比如一个网站有前台和后台,前台有新闻功能用于阅读,后台有新闻功能用于管理。
现在,我们假设开发一个Web系统,包含两个模块:普通用户模块(Visit)和系统管理模块(Manage)。
A.在 app/Http/Contollers 目录中分别新建两个模块的控制器子目录:Visit、Manage;
B.在 resources/views 下创建两个子目录:Visit、Manage,并在 Visit下创建子目录:Home;
C.把上例创建的 HomeController 移动到上一步新建的 Visit 中。修改后的代码如下:
<?php namespace App\Http\Controllers\Visit; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw($name) { return view('Visit.Home.hw',['name'=>$name]); } }
D.修改routes.php代码段为:
Route::get('/hw/{name}', 'Visit\HomeController@hw');
现在,再次访问:http://localhost:801/hw/calvin,依然是正确的。
2.2 控制器中间件
在前文中我们已经演示了中间件的使用,再回顾一下上文的示例:
Route::get('/user/{age}', ['middleware' => 'my', function ($age) { return '用户年龄:'.$age; }]);
事实上我们也可以在控制器的构造函数中处理:
class UserController extends Controller { public function __construct() { $this->middleware('my'); } }
另外,还有隐式控制器、RESTful、路由缓存等等,后文再继续补充。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了Laravel 514 + Bootstrap 334 笔记四:Laravel 控制器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kod status HTTP 520 bermakna pelayan mengalami ralat yang tidak diketahui semasa memproses permintaan dan tidak dapat memberikan maklumat yang lebih khusus. Digunakan untuk menunjukkan bahawa ralat tidak diketahui berlaku semasa pelayan memproses permintaan, yang mungkin disebabkan oleh masalah konfigurasi pelayan, masalah rangkaian atau sebab lain yang tidak diketahui. Ini biasanya disebabkan oleh isu konfigurasi pelayan, isu rangkaian, kelebihan beban pelayan atau ralat pengekodan. Jika anda menghadapi ralat kod status 520, sebaiknya hubungi pentadbir tapak web atau pasukan sokongan teknikal untuk mendapatkan maklumat dan bantuan lanjut.

Fungsi bermaksud fungsi. Ia adalah blok kod yang boleh digunakan semula dengan fungsi tertentu Ia boleh menerima parameter input, melakukan operasi tertentu, dan mengembalikan hasil daripada blok yang boleh digunakan semula. kod untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

Kod status HTTP 403 bermakna pelayan menolak permintaan pelanggan. Penyelesaian kepada kod status http 403 ialah: 1. Semak kelayakan pengesahan Jika pelayan memerlukan pengesahan, pastikan kelayakan yang betul disediakan 2. Semak sekatan alamat IP, pastikan bahawa alamat IP klien adalah disenarai putih atau tidak disenaraihitamkan 3. Semak tetapan kebenaran fail Jika kod status 403 berkaitan dengan tetapan kebenaran fail atau direktori, pastikan klien mempunyai kebenaran yang mencukupi untuk mengakses fail atau direktori ini. dll.

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Kuasai maksud kod status HTTP 301: Senario aplikasi biasa pengalihan halaman web Dengan perkembangan pesat Internet, keperluan orang ramai untuk interaksi halaman web menjadi lebih tinggi dan lebih tinggi. Dalam bidang reka bentuk web, pengalihan halaman web adalah teknologi biasa dan penting, dilaksanakan melalui kod status HTTP 301. Artikel ini akan meneroka maksud kod status HTTP 301 dan senario aplikasi biasa dalam pengalihan halaman web. Kod status HTTP301 merujuk kepada ubah hala kekal (PermanentRedirect). Apabila pelayan menerima pelanggan

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Dengan pembangunan Internet, fungsi muat turun fail telah menjadi salah satu keperluan asas bagi banyak laman web dan aplikasi. Untuk senario di mana berbilang fail perlu dimuat turun pada masa yang sama, kaedah muat turun segerak tradisional selalunya tidak cekap dan memakan masa. Atas sebab ini, menggunakan PHP untuk memuat turun berbilang fail secara tidak segerak melalui HTTP telah menjadi penyelesaian yang semakin biasa. Artikel ini akan menganalisis secara terperinci cara menggunakan HTTP tak segerak PHP melalui kes pembangunan sebenar.

Gunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang Dalam pakej http bahasa Go, anda boleh menggunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang. Prototaip fungsi http.PostForm adalah seperti berikut: funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)di mana, u

Penyelesaian: 1. Semak Content-Type dalam tajuk permintaan 2. Semak format data dalam badan permintaan 3. Gunakan format pengekodan yang sesuai 5. Semak sokongan sisi pelayan;
