1、添加路由routes/web.php
Eg:Route::get('news', 'NewsController@index');
Route::post('news/detail/{id}', 'NewsController@detail');
路由还可以写很多样子,具体的可看如下链接:
https://laravel-china.org/docs/laravel/5.5/routing/1293
***中间件***:
https://laravel-china.org/docs/laravel/5.5/middleware/1294
1)、Laravel中间件特点,可以实现访问前后台的处理,例如请求和返回,权限认证等;
2)、要给路由组中所有的路由分配中间件,可以在group之前调用middleware方法,中间件会依照他们在数组中列出的顺序来运行:
Route::middleware(['first', 'second'])->group(function () {
Route::get('/', function () {
// 使用 first 和 second 中间件
});
Route::get('user/profile', function () {
// 使用 first 和 second 中间件
});
});
2、创建控制器 app\Http\Controllers\NewsController.php
Eg:
<?php
namespace App\Http\Controllers;
use App\News;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class NewsController extends Controller {
public function index() {
$news = News::all();
//return $news;//直接返回json
return view('news.index', compact('news')); //返回视图
}
public function detail($id) {
$row = News::getOne($id);
return view('news.detail', compact('row'));
}
}
3、创建模型 app\News.php
Eg:
<?php
namespace App; //当前的类是属于app这个命名空间的
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use DB; //要使用App这个命名空间下的这个DB类
class News extends Model {
static function getOne($id) {
$row = DB::table('news')->where('id', $id)->first();
return $row;
}
}
4、创建视图,laravel使用的是Blade模板引擎,同时也支持PHP原生写法
resources\views\news\index.blade.php
Eg:
<html>
<head>
<title>新闻列表</title>
</head>
<body>
<h2>新闻列表</h2>
<div class="container">
@foreach($news as $row)
<article>
<a href="{{url('news/detail/'.$row->id)}}">{{$row->title}}</a>
</article>
@endforeach
</div>
</body>
</html>