84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
在学习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的类型