关于 compact ('user') 中使用'user'的疑问?
问题#
请问各位:#
- 教程里面的下段代码中,
edit()
方法传入的实例是$user
,而在调用compact()
处理时,用的是'user'
而不是$user
。对此,我查了下 PHP 的手册,手册的范例中用'var'
和$var
都可以传入参数(见最下方范例),但是把教程中的'user'
换成$user
却无法得到 相同的结果。
且经过试验,在return view('users.edit', compact('something'));
这行代码里面,必须用'something'
来传入参数,而不能用$something
,这是否由于处于view()
里面呢,有没有相关的解释或原理资料? compact()
函数应该返回一个array
对象,但在 view 中用{{var_dump($user)}}
查看$user
变量的详情时,显示的类型是object(App\Models\User)
,这是 Laravel 框架特有的性质吗?应该怎样理解呢?谢谢分享和解答。#
<?php
namespace App\Http\Controllers;
.
.
.
class UsersController extends Controller
{
.
.
.
public function edit(User $user)
{
return view('users.edit', compact('user'));
}
}
PHP 手册的范例 ¶#
Example #1 compact () 例子#
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", "nothing_here", $location_vars);
print_r($result);
?>
以上例程会输出:
Array
(
[event] => SIGGRAPH
[city] => San Francisco
[state] => CA
)
推荐文章: