Laravel5.0学習02 応用例
この記事では、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
Start
ここでは当面 Eloquent ORM は使用しません。クラスは直接使用されます。Controller
新しいコントローラーを作成します: app/Http/Controllers/BlogController.php
<?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]); }}
新しいマスター ビューを作成します: resource/views/blog/layout.blade.php
<!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
routingrree
visit
@extends('blog.layout')@section('content') @foreach($list as $blog) <div> <h1>{{$blog->title}}</h1> <p>{{$blog->content}}</p> </div> @endforeach@endsection
ルーティング スキル
デフォルトでは、新しいメソッドが追加されるたびにルートを記述する必要がありますが、これは比較的面倒です。 Laravel は、コントローラー内のすべてのメソッドに対して 1 つのルートのみを記述することをサポートしています。従う必要があるルールは次のとおりです:
1) コントローラー内のメソッドは get と post で始まる必要があります。
2) Route::get() は Route::controller() に変更されます。
Route::get('blog', 'BlogController@index');
http://localhost/laravel5/public/index.php/blog
Route::controller('blog', 'BlogController');
getDetail()メソッドをコントローラーに追加:
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
上記の DB クラスを使用しています。次に、DB クラスの代わりに Eloquent ORM を使用します。
Laravel の Eloquent ORM は、データベースと対話するためのよりエレガントな ActiveRecord 実装を提供します。 各データベース テーブルはモデル ファイルに対応します。
モデル
アプリの下に新しい Blog.php を作成します:
@extends('blog.layout')@section('content') <div class="jumbotron"> <h1>{{$blog->title}}</h1> <p>{{$blog->content}}</p> </div>@endsection
ヒント: すべての DB クラスのクエリ コンストラクターのメソッドは、Eloquent モデルをクエリするときにも使用できます。
コントローラーでモデルを使用しますBlogController.php を BlogController.php.bak にコピーし、元の BlogController.php の内容をクリアして、次の内容に変更します:
//对应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 ページにアクセスしてご覧ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
