【发布时间】:2016-06-04 07:27:02
【问题描述】:
我是 laravel 的新手,我目前正在使用 laravel 5.2 做一个研究项目。 Thr 项目只是一个简单的网站,有 3 个页面 (Home, About Us, Contact Us),从数据库中获取每个页面的内容,主页有幻灯片。为此,我下载了一个免费的响应式 html 模板并将其分为 header.blade.php、slideshow.blade.php、footer.blade.php 并将其存储在 view 文件夹下名为 includes 的文件夹中。主布局文件default.blade.php 存储在view 文件夹下名为layouts 的文件夹中。我在主布局文件default.blade.php 中包含了这些header.blade.php、slideshow.blade.php 和footer.blade.php 以形成完整的Web 模板。
我的default.blade.php文件代码如下:
<!DOCTYPE html>
<head>
@include('guest.includes.head')
</head>
<body>
<div class="wrap-body">
<header>
@include('guest.includes.header')
</header>
@if(Request::is('/'))
@include('guest.includes.slideshow')
@endif
@yield('content')
<footer class="zerogrid">
@include('guest.includes.footer')
</footer>
</div>
</body>
</html>
在 header.blade.php 中,我有一些信息,如电话号码、电子邮件、网站地址,这些信息是从数据库中获取的,并在我的所有 3 个页面上显示这些数据以及来自 db 的每个页面内容。为此,我在AppServiceProvider.php 的boot 方法中使用了share() 函数,在我的所有网页上共享和显示我的标题数据。
我当前的slideshow.blade.php 代码如下所示:
<div class="zerogrid">
<div class="callbacks_container">
<ul class="rslides" id="slider4">
<li>
<img src="assets/images/banner1.jpg" alt="">
<div class="caption">
<h2>Title 1</h2></br>
<p>Description 1</p>
</div>
</li>
<li>
<img src="assets/images/banner2.jpg" alt="">
<div class="caption">
<h2>Title 2</h2></br>
<p>Description 2</p>
</div>
</li>
</ul>
</div>
</div>
在这里你可以看到我已经硬编码了上面的幻灯片项目详细信息(slideimage, title, description)。到目前为止,这部分工作正常,我通过header.blade.php 将标头数据从 db 获取到服务器到所有页面,每个页面内容都通过 Routes/Controllers 和上述幻灯片从 db 获取。
我的routes.php 代码如下:
Route::get('/', 'GuestController@home');
Route::get('aboutus', 'GuestController@aboutus');
Route::get('contactus', 'GuestController@contactus');
我的控制器页面(GuestController.php)代码如下:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class GuestController extends Controller
{
public function home() {
$result=DB::table('contents')->where('menuname','home')->get();
return view('guest.home')->with('data',$result);
}
public function aboutus() {
$result=DB::table('contents')->where('menuname','aboutus')->get();
return view('guest.aboutus')->with('data',$result);
}
public function contactus() {
$result=DB::table('contents')->where('menuname','contactus')->get();
return view('guest.contactus')->with('data',$result);
}
}
现在我想让幻灯片也变得动态。我的意思是也从 db 本身获取幻灯片项目的详细信息(幻灯片图像、标题、描述)。为此,我创建了一个名为slideshow 的表,其中包含slideimage、title、description 字段。但我不知道如何从 db 中的两个独立表 (slideshow & contents) 中获取和显示数据到单个网页。
(在我的例子中,实际上在我的主页中,它将从数据库中获取 3 组数据。第一组数据是来自headers 表的标题数据,它将向我所有的人显示电话、电子邮件、网站等标题数据页面包括通过share() 函数的主页,第二组数据是通过路由/控制器页面从内容表中获取的主页内容。这两个已经在工作,现在我想从数据库中的slideshow 表中获取幻灯片的数据,其中是我要在主页上显示的第三组数据。)
此要求的任何解决方案?请帮忙!提前谢谢...
【问题讨论】:
标签: php mysql laravel laravel-routing laravel-5.2