关于 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
)


关于 LearnKu
推荐文章: