Laravel建站03--建立前台文章列表和文章详情
经过了前面的开发环境搭建和数据库配置、git配置的准备工作以后,现在可以开始动作做点什么了。
先从简单的开始,那就先来个文章列表和详情页吧。
这期间可以学习到路由、建立model、controller还有view的写法。
建立model
php artisan make:model Article
model文件目录是(基于Laravel5.4)app。目前简单例子中并不会在model中写点什么,但是没它不行。
建立数据表
php artisan make:migration create_article_table
执行以上命令后,会在database/migrations下生成2*_create_article_table.php文件。修改它的up方法:
public function up()
{
Schema::create('articles', function(Blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
}
然后执行以下命令
php artisan migrate
数据库中会出现article表了。
建立controller
php artisan make:controller ArticleController
controller目录是app/Http/ 。以上语句执行成功后,会在该目录建立ArticleControllser.php
暂时只需要列表和详情两个方法。所以只需在ArticleControllser里写两个方法就够了。
public function index()
{
$articles = DB::table('articles')
->select('id', 'body', 'title')
->orderBy('id', 'desc')
->paginate(5);
return view('welcome', ['articles' => $articles]);
} public function show($id)
{
return view('article')->withArticle(Article::find($id));
}
还要添加两个引用:
use Illuminate\Support\Facades\DB;
use App\Article;
index方法是列表,这里通引用的db来查询数据库,指定了表、列和排序字段,最简单的是用gaginate(5)就可以实现翻页了。
当数据量大时可以用 simplePaginate 来实现 上一页/下一页的简单分页,这样速度会比较快。
show方法是显示文章详情,这里用article的model的find方法来实现,所以需要引用article的model。
建立view
Laravel的view就是自己手动创建的。文件目录是resources/views/ 。文件名一定是以.blade.php结尾的。
这里建立article.blade.php当做文章详情页,用自带的首页welcome.blade.php当文章列表页。
列表写法:
@foreach ($articles as $article)
<li style="margin: 50px 0;">
<div class="title">
<a href="{{ url('article/'.$article->id) }}">
<h4>{{ $article->title }}</h4>
</a>
</div>
<div class="body">
<p>{{ $article->body }}</p>
</div>
</li>
@endforeach
分页写法:
{{ $articles->links() }}
以上就是列表的写法,虽然简陋,但是可以看出很简单就可以实现列表和翻页。
详情页写法:
<h1 style="text-align: center; margin-top: 50px;">{{ $article->title }}</h1>
<hr>
<div id="date" style="text-align: right;">
{{ $article->updated_at }}
</div>
<div id="content" style="margin: 20px;">
<p>
{{ $article->body }}
</p>
</div>
以上就是view中涉及到动态内容的写法。其他就把它当做html写就可以了。
配置路由
路由目录是routes/ 这里配置目录下的web.php,为其增加文章详情的路由。
Route::get('/', 'ArticleController@index');
Route::get('article/{id}', 'ArticleController@show');
注释掉默认的'/'的处理。这样首页就可以进入articlecontroller的index方法,而详情页就进入show方法。
至此,前台文章列表和详情的页面已经写完。个人理解重点的代码就是以上那么多。源代码可以在我的 GitHub 上找到。
欢迎交流。
Laravel建站03--建立前台文章列表和文章详情的更多相关文章
- 用weexplus从0到1写一个app(2)-页面跳转和文章列表及文章详情的编写
说明 结束连续几天的加班,最近的项目终于告一段落,今天抽点时间开始继续写我这篇拖了很久的<用weexplus从0到1写一个app>系列文章.写这篇文章的时候,weexplus的作者已经把w ...
- Laravel建站04--建立后台文章管理
路由配置 Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 'prefix' => 'admin'], fu ...
- joomla多语言建站之默认前台语言设置
joomla多语言建站后,如果想设置其中一种语言为默认前台语言,即: 从后台点击“Site Name”跳转时: 访问域名时: 页面自动切换至某一种语言,可以在后台通过“语言管理”模块来实现,将“网站前 ...
- Laravel建站01--开发环境部署
内容导航 安装git 安装composer 安装Laravel 既然是开发环境,就需要源代码管理.这里使用git来管理. 一:部署开发环境之前安装git 在 Linux 上安装git 如果你想在 Li ...
- Laravel建站05--缓存、时间日期处理包
缓存 Laravel 给多种缓存系统提供丰富而统一的 API,缓存配置信息位于 config/cache.php,在这个文件中你可以为你的应用程序指定默认的缓存驱动,Laravel 支持当前流行的缓存 ...
- Laravel建站02--配置Laravel
Laravel项目的根目录下有.env文件,如果没有可以把.env.example改名为.env 这个文件是配置文件,可以把app_key.数据库.redis缓存等配置信息写在这个文件里. 目前5.4 ...
- 【建站03】WordPress网站如何去除RSS功能
哈喽,大家好,我是帝哥,最近有小伙伴问我,如何去掉WordPress上的RSS功能,这个功能呢,说实话,我们很少会用到. 但是如果有点强迫症的话看着会很不舒服,所以,今天和大家分享一下如何去掉Word ...
- HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客
HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机 2014年06月02日 17:20 评论» 文章目录 Debian上安装 Ce ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 全部文章列表
显示文章列表分两块,管理员可以显示全部文章列表,一般用户只显示自己的文章列表.文章列表的显示采用easyui-datagrid.后台需要与之对应的action返回json类型数据 目录 ASP.N ...
随机推荐
- Java后台JSON数据的使用
1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "secon ...
- 对自助提卡系统EDLM的一次代码审计
前言 并非有意愿要审计该站,前面的走的黑盒没有过于精彩部分就不在贴上了,对于此系统站你们懂的,多说无益,这套程序是开源的,像这种自助提卡系统相信大家已经不在陌生了,很多违法网站通过这种平台方式提卡密的 ...
- [转载]《Delphi 版 everything、光速搜索代码》 关于获取文件全路径 GetFullFileName 函数的优化
Delphi 版 everything.光速搜索代码>,文章中关于获取文件全路径的函数:GetFullFileName,有一个地方值得优化. 就是有多个文件,它们可能属于同一个目录. 譬如 Sy ...
- dedecms会员注册注入漏洞
一.首先访问“/data/admin/ver.txt”页面获取系统最后升级时间,(判断是否是dede的cms 以及看看是否和这个漏洞相对应)二.然后访问“/member/ajax_membergrou ...
- Git系列四之在本地服务器搭建gitlab仓库管理
1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...
- Scriptable render pipeline unity
https://www.youtube.com/watch?v=zbjkEQMEShM LWRP https://blogs.unity3d.com/cn/2018/02/21/the-lightwe ...
- Bayesian statistics
文件夹 1Bayesian model selection贝叶斯模型选择 1奥卡姆剃刀Occams razor原理 2Computing the marginal likelihood evidenc ...
- 使用JTextArea示例
相对于JLabel显示提示文字,JTextArea有一个先天优势:文字可以拷贝出来.经过下面设置它也能在外观上和JLabel一致. 代码如下: JTextArea txtArea=new JTextA ...
- Python strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的
在python中,strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象. a = 1 def fun(a): a = 2 fun(a ...
- selenium-Getting Started
1.1. Simple Usage If you have installed Selenium Python bindings, you can start using it from Python ...