MVC 路由,将数组作为参数传递(Laravel/CodeIgniter 样式)



我正在学习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]);
}
}

这门课中有一些更简单的东西,但我只是不确定['post' => $post]部分。

我不明白这种语法是如何工作的,就像一个接一个的符号。这是基于已经融入某种框架的东西吗(他这里没有这样的东西,这是他的,这是他从头开始构建它的第一章)。我的意思是,我会想象数组就像一个$array,在一个变量中,这是一个方括号中的参数,那么这里的数组叫什么名字呢?

这是$post的吗,并且是第二个实际的=>$post子数组。我只是根本不明白。

我以前开始学习Laravel(暂时跳过所有这些),我也一直被困在这些事情上。

我的意思是,这是否只与框架相关(不是真正的常规过程 PHP),就像已经在更深层次上编码并且我们与之相关的东西?

提前感谢您提供我能得到的任何信息。

你感到困惑的部分只是一个函数调用。

$this-view('edit',['post' => $post]);

这本来可以这样写的

$dataYouWantToPassToTheView = ['post' => $post];
$this->view('edit', $dataYouWantToPassToTheView);

您正在调用函数view,并向其传递两个参数。一个Edit字符串和一个数组,其中包含一个键post,其值为名为post的变量。view 函数只是获取数组中的所有值,并通过它们在视图中的键使它们可用。

这意味着您可以在视图中执行以下操作

<span>This is post id: {{ $post->id }}</span>

将数组作为参数传递是常规的PHP,与特定框架无关。Array不需要"名称",就像'edit'String不需要名称一样。

最新更新