84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
在学习laravel中发现,路由与模型绑定中http://www.golaravel.com/docs/4.1/routing/#route-model-binding
function(User $user)中的User $user如何理解。 function()中不应该是传入参数吗?User $user是什么东西?
人生最曼妙的风景,竟是内心的淡定与从容!
$user是整个关于user数据获取的model,文档说的挺清楚地,如果一旦有profile/1的路由访问,这时候整个anonymous function只是callback函数中参数的一个值,而$user是anonymous function的一个参数。这时候php会把整个anonymous function转换成一个对象实例,你就可以在此函数里使用model中对应{{user}}数据做操作了。不理解也没事,先这么用,用多了慢慢就理解了。我也是写js才慢慢了解的,php早年这么写的少,最近现代框架中出现频率特别高
$user
//先创建了一个model Route::model('user', 'User'); //再将这个model传入特定路由中去 Route::get('profile/{user}', function(User $user) { // });
因为在路由的这个
这个其实是用于捕获入口类型的。 是对数据的一种限制,更安全些。
这是类型约束 以function(User $user)为例,好处是,假如你不知道此函数需要传一个类User的实例,如果你传了一个数组或其它的类型,PHP会立即在函数入口抛出可捕获的致命错误.如果你写成function($param),你就只能等运行了一段代码之后才知道,原来参数错误了(后悔莫及)...
function(User $user)
function($param)
$user就是参数,User 为$user的类型
$user
是整个关于user数据获取的model,文档说的挺清楚地,如果一旦有profile/1的路由访问,这时候整个anonymous function只是callback函数中参数的一个值,而$user是anonymous function的一个参数。这时候php会把整个anonymous function转换成一个对象实例,你就可以在此函数里使用model中对应{{user}}数据做操作了。不理解也没事,先这么用,用多了慢慢就理解了。我也是写js才慢慢了解的,php早年这么写的少,最近现代框架中出现频率特别高因为在路由的这个
这个其实是用于捕获入口类型的。
是对数据的一种限制,更安全些。
这是类型约束
以
function(User $user)
为例,好处是,假如你不知道此函数需要传一个类User的实例,如果你传了一个数组或其它的类型,PHP会立即在函数入口抛出可捕获的致命错误.如果你写成function($param)
,你就只能等运行了一段代码之后才知道,原来参数错误了(后悔莫及)...$user就是参数,User 为$user的类型