<?php
namespace Laravel\Horizon\Http\Controllers;
class HomeController extends Controller
{
/**
* Single page application catch-all route.
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('horizon::app'); // what's the meaning of this 'horizon::app'
}
}我在中找到了这种语法,有人能解释这一点吗?
视图(“地平线::app”);
'horizon::app'的含义是什么?
发布于 2018-05-03 04:02:57
就像其他人所说的答案一样,这被称为view namespaces。它不限于包的视图,但您也可以在项目中使用它。
例如,您可能有admin和customer模块,并且希望通过它们自己的文件夹名来区分它们的视图,此时您可以使用名称空间声明。例如,您可能具有以下文件夹结构:
|- resources
|- views
|- admin
|- index.blade.php
|- customer
|- index.blade.php 然后您可以注册您自己的名称空间,该名称空间指向AppServiceProvider.php中的特定文件夹路径。
app('view')->addNamespace('admin', base_path() . '/resources/views/admin');
// or
app('view')->addNamespace('customer', base_path() . '/resources/views/customer');稍后,在控制器的方法中,您可以使用以下方法引用它:
return view("admin::index");
// or
return view("customer::index");发布于 2018-05-03 03:30:21
::是作用域(命名空间)运算符。意味着app是在horizon中声明的。
示例(来自php.net):
<?php
class MyClass {
const CONST_VALUE = 'Un valor constante';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // A partir de PHP 5.3.0
echo MyClass::CONST_VALUE;
?>发布于 2018-05-03 03:43:33
此语法指示名为app的视图属于horizon包。把它想象成package::view.path。
要将您的包的视图注册到Laravel,您需要告诉Laravel视图位于哪里。 使用package::view语法约定引用包视图。因此,一旦在服务提供商中注册了视图路径,您就可以从快递包加载管理视图,如下所示:
Route::get('admin', function () {
return view('courier::admin');
});如果您已经看到了这个术语,或者想要搜索其他东西,那么这个特性过去通常被称为视图命名空间。:)
https://stackoverflow.com/questions/50146408
复制相似问题