この記事では、laravel5.0.22を例に説明します。
このセクションでは、例として簡単なブログの作成を使用します。
.env ファイル (config/database.php を直接変更することもできます)
DB_HOST=localhostDB_DATABASE=myblogDB_USERNAME=rootDB_PASSWORD=123456
データベーステーブル:
CREATE TABLE `blog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', `title` varchar(50) NOT NULL DEFAULT '', `content` text NOT NULL, `flag` tinyint(2) NOT NULL DEFAULT '1', `create_time` int(11) NOT NULL DEFAULT '0', `update_time` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
Controller
<?phpnamespace App\Http\Controllers;use Illuminate\Support\Facades\DB;/** * * @author YJC * */class BlogController extends Controller{ public function index() { $list = DB::table('blog')->get(); //需要return return view('blog.index', ['list' => $list]); }}
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"></head><body> @yield('content') <!-- Scripts --> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script></body></html>
rree
routing
@extends('blog.layout')@section('content') @foreach($list as $blog) <div> <h1>{{$blog->title}}</h1> <p>{{$blog->content}}</p> </div> @endforeach@endsection
ルーティング スキル
1) コントローラー内のメソッドは get と post で始まる必要があります。
2) Route::get() は Route::controller() に変更されます。
Route::get('blog', 'BlogController@index');
http://localhost/laravel5/public/index.php/blog
Route::controller('blog', 'BlogController');
public function getIndex(){}public function getDetail(){}public function postAdd(){}
http://localhost/laravel5/public/index.php/blog/indexhttp://localhost/laravel5/public/index.php/blog/detail/2http://localhost/laravel5/public/index.php/blog/add
public function getDetail($id) { $blog = DB::table('blog')->find($id); return view('blog.detail', ['blog' => $blog]);}
@extends('blog.layout')@section('content') @foreach($list as $blog) <div> <h1><a href="{{url('blog/detail/'.$blog->id)}}">{{$blog->title}}</a></h1> <p>{{$blog->content}}</p> </div> @endforeach @endsection
Laravel の Eloquent ORM は、データベースと対話するためのよりエレガントな ActiveRecord 実装を提供します。 各データベース テーブルはモデル ファイルに対応します。
モデル
@extends('blog.layout')@section('content') <div class="jumbotron"> <h1>{{$blog->title}}</h1> <p>{{$blog->content}}</p> </div>@endsection
ヒント: すべての DB クラスのクエリ コンストラクターのメソッドは、Eloquent モデルをクエリするときにも使用できます。
コントローラーでモデルを使用します
//对应blog/indexRoute::get('blog', 'BlogController@index'); //对应blog里任何方法,注意方法要加get或者postRoute::controller('blog', 'BlogController');
Blog.php モデル ファイルでは、次のクエリ メソッドを使用できます (Eloquent ORM は $this 呼び出しと静的呼び出しの両方をサポートしています):
<?phpnamespace App;use Illuminate\Database\Eloquent\Model;/** * @author YJC * */class Blog extends Model{ //指定表名,不指定系统会默认自动对应名称为「类名称的小写复数形态」的数据库表 protected $table = 'blog'; //指定主键,默认就是id protected $primaryKey = 'id'; //默认情况下,在数据库表里需要有 updated_at 和 created_at 两个字段。如果您不想设定或自动更新这两个字段,则将类里的 $timestamps 属性设为 false即可 public $timestamps = false; }
http://localhost/laravel5/public/index.php/blog ページにアクセスしてご覧ください。