laravel 5.2 仅在索引页中的轮播不起作用
laravel 5.2 carousel only in index page doesn't wok
我使用 laravel 5.2 并尝试仅在索引页中显示轮播但不起作用。
我选择的代码不是索引页上的"spreaded",它们存储在:public/carousel/carousel.php,也是(不是...blade.php).
route.php:
Route::get('/', 'HomeController@index')
HomeController.php:
{
$cats = Category::all();
$carousel = public_path('carousel/carousel.php');
//$carousel = storage_path('public/carousel/carousel.php');
return view('layouts.app', compact('cats', 'carousel'));
}
layouts/app.blade.php:
{{-- @include('carousel/carousel');--}}
@if($carousel)
{{ $carousel }}
@endif
@yield('content')
最后只显示:C:\wamp\www\app_name\public\carousel/carousel.php
。
你能帮我或指出另一个更好的方法吗?
在您的控制器中,您正在向视图传递一个名为 $carousel
的变量,它是您的文件的路径,正如您在此处定义的那样:
$carousel = public_path('carousel/carousel.php');
这就是它只显示字符串的原因。您需要获取文件的实际内容:
$carousel = file_get_content(public_path('carousel/carousel.php'));
更好更 laravel-ish 的方法是将文件重命名为 carousel.blade.php
,将其存储到 resources/views
文件夹中,然后简单地从主 blade 文件(无需在控制器中做任何事情):
@include('carousel')
如果你只需要在某些页面显示轮播,你可以简单地在需要显示的页面上传递一个变量$carousel = true
:
$carousel = true;
return view('layouts.app',compact('carousel'));
并且在您的 blade 视图中,仅当此变量存在且为真时才包含轮播文件:
@includeWhen(isset($carousel) && $carousel, 'carousel')
我使用 laravel 5.2 并尝试仅在索引页中显示轮播但不起作用。 我选择的代码不是索引页上的"spreaded",它们存储在:public/carousel/carousel.php,也是(不是...blade.php).
route.php:
Route::get('/', 'HomeController@index')
HomeController.php:
{
$cats = Category::all();
$carousel = public_path('carousel/carousel.php');
//$carousel = storage_path('public/carousel/carousel.php');
return view('layouts.app', compact('cats', 'carousel'));
}
layouts/app.blade.php:
{{-- @include('carousel/carousel');--}}
@if($carousel)
{{ $carousel }}
@endif
@yield('content')
最后只显示:C:\wamp\www\app_name\public\carousel/carousel.php
。
你能帮我或指出另一个更好的方法吗?
在您的控制器中,您正在向视图传递一个名为 $carousel
的变量,它是您的文件的路径,正如您在此处定义的那样:
$carousel = public_path('carousel/carousel.php');
这就是它只显示字符串的原因。您需要获取文件的实际内容:
$carousel = file_get_content(public_path('carousel/carousel.php'));
更好更 laravel-ish 的方法是将文件重命名为 carousel.blade.php
,将其存储到 resources/views
文件夹中,然后简单地从主 blade 文件(无需在控制器中做任何事情):
@include('carousel')
如果你只需要在某些页面显示轮播,你可以简单地在需要显示的页面上传递一个变量$carousel = true
:
$carousel = true;
return view('layouts.app',compact('carousel'));
并且在您的 blade 视图中,仅当此变量存在且为真时才包含轮播文件:
@includeWhen(isset($carousel) && $carousel, 'carousel')