MVC 路由,将数组作为参数传递(Laravel / CodeIgniter 样式)
MVC routing, passing array as parameter (Laravel / CodeIgniter style)
我正在学习 Traversy Media 的 PHP / MVC / OOP 课程,我正在学习为简单社交应用创建路由器的章节(任何请求的初始路由 domain.com/index.php
).
此人谈到将数组作为参数传递,但我不明白这是如何工作的:
class Posts {
public function edit($id) {
$post = $this->postModel->fetchPost($id);
$this->view('edit', ['post' => $post]);
}
}
这个 class 中有一些更简单的东西,但我只是不确定 ['post' => $post]
部分。
我不明白这种语法是如何工作的,比如一个又一个符号。这是基于已经内置到某种框架中的东西吗(他这里没有这样的东西,这是他的,这是他从头开始构建它的第一章)。我的意思是,我会想象数组就像变量中的 $array
,这是方括号中的参数,那么这里的数组名称是什么?
这是$post
并且是第二个实际=> $post
一个子数组。我根本不明白。
我之前开始学习 Laravel(暂时跳过这一切),但我也一直被这些事情困住。
我的意思是,这是否只是与框架相关(不是真正的常规程序 PHP),就像已经在更深层次上编码并且我们与之相关的东西?
提前感谢您提供我可以获得的任何信息。
您感到困惑的部分只是一个函数调用。
$this-view('edit',['post' => $post]);
可以这样写
$dataYouWantToPassToTheView = ['post' => $post];
$this->view('edit', $dataYouWantToPassToTheView);
您正在调用函数 view
,并向其传递两个参数。一个 Edit
字符串和一个数组,其中包含一个键 post
,其值为一个名为 post
的变量。视图函数简单地获取数组中的所有值,并通过它们在视图中的键使它们可用。
这意味着您可以在视图中执行以下操作
<span>This is post id: {{ $post->id }}</span>
将数组作为参数传递是常规的PHP,与特定框架无关。 Array
不需要 "name",就像 'edit'
String
不需要名字一样。
我正在学习 Traversy Media 的 PHP / MVC / OOP 课程,我正在学习为简单社交应用创建路由器的章节(任何请求的初始路由 domain.com/index.php
).
此人谈到将数组作为参数传递,但我不明白这是如何工作的:
class Posts {
public function edit($id) {
$post = $this->postModel->fetchPost($id);
$this->view('edit', ['post' => $post]);
}
}
这个 class 中有一些更简单的东西,但我只是不确定 ['post' => $post]
部分。
我不明白这种语法是如何工作的,比如一个又一个符号。这是基于已经内置到某种框架中的东西吗(他这里没有这样的东西,这是他的,这是他从头开始构建它的第一章)。我的意思是,我会想象数组就像变量中的 $array
,这是方括号中的参数,那么这里的数组名称是什么?
这是$post
并且是第二个实际=> $post
一个子数组。我根本不明白。
我之前开始学习 Laravel(暂时跳过这一切),但我也一直被这些事情困住。
我的意思是,这是否只是与框架相关(不是真正的常规程序 PHP),就像已经在更深层次上编码并且我们与之相关的东西?
提前感谢您提供我可以获得的任何信息。
您感到困惑的部分只是一个函数调用。
$this-view('edit',['post' => $post]);
可以这样写
$dataYouWantToPassToTheView = ['post' => $post];
$this->view('edit', $dataYouWantToPassToTheView);
您正在调用函数 view
,并向其传递两个参数。一个 Edit
字符串和一个数组,其中包含一个键 post
,其值为一个名为 post
的变量。视图函数简单地获取数组中的所有值,并通过它们在视图中的键使它们可用。
这意味着您可以在视图中执行以下操作
<span>This is post id: {{ $post->id }}</span>
将数组作为参数传递是常规的PHP,与特定框架无关。 Array
不需要 "name",就像 'edit'
String
不需要名字一样。