Laravel中with()和compact()之间的区别是什么

Asm*_*ust 1 php laravel laravel-4

在这两个例子中,函数with()compact()Laravel 之间有什么区别:

例1:

return View::make('books.index')->with('booksList', $booksList);
Run Code Online (Sandbox Code Playgroud)

例2:

return View::make('books.index',compact('booksList'));
Run Code Online (Sandbox Code Playgroud)

luk*_*ter 8

Well compact()是一个PHP函数,它将变量列表转换为关联数组,其中键是变量名,值是该变量的实际值.

实际问题应该是:有什么区别

return View::make('books.index')->with('booksList', $booksList);
Run Code Online (Sandbox Code Playgroud)

return View::make('books.index', array('booksList' => $booksList));
Run Code Online (Sandbox Code Playgroud)

答案不是真的.它们都向视图数据添加项目.

语法方式,View::make()只接受一个数组,同时with()接受两个字符串:

with('booksList', $booksList);
Run Code Online (Sandbox Code Playgroud)

或者一个可能包含多个变量的数组:

with(array('booksList' => $booksList, 'foo' => $bar));
Run Code Online (Sandbox Code Playgroud)

这也意味着compact()也可以使用with():

return View::make('books.index')->with(compact($booksList));
Run Code Online (Sandbox Code Playgroud)