ホームページ  >  記事  >  php教程  >  Laravelはユーザー登録とログインを実装します

Laravelはユーザー登録とログインを実装します

高洛峰
高洛峰オリジナル
2016-12-27 10:43:533519ブラウズ

Laravel は最もエレガントな PHP フレームワークであり、PHP を学習している多くの友人が Laravel を欲しがっています。今日あなたの願いを実現して、Laravel を使用して Web アプリケーションの最も一般的な登録機能とログイン機能を実装してみましょう。すべてのコースのソースコードは Github にあります: laravel-start レーススタート!

まず第一に、このコースに必要なものを明確にしましょう:

Laravel 4.2
Bootstrap 3.3
Laravel は私たちが重要なコア部分です。ブートストラップが使用されます。いくつかのフロントエンド CSS スタイルをすばやく設定します。

1. Laravel をインストールします

簡単な説明の後、次のステップに進み、Composer を使用して Laravel をインストールします。

cd Sites

Sites は Web アプリケーションのルート ディレクトリです。に従ってインストールできます。独自のルートディレクトリに変更してから実行する必要があります:

composer create-project laravel/laravel laravel

laravel はアプリケーションディレクトリの名前です。好きな名前を選択できます。上記のコマンドを実行した後、しばらく待ちます (結局のところ、中国ではインターネット速度が大きな問題です)。インストール後、次のディレクトリが生成されます:

Laravelはユーザー登録とログインを実装します

主にモデル、コントローラーの 3 つのディレクトリを操作します。とビュー: これが MVC の構成です。

2. Bootstrap

をインストールし、コマンドラインから実行します:

cd laravel/public/packages

ここでのlaravelは、インストール中に別の名前を使用した場合は、それに応じて変更してください。パッケージ ディレクトリに移動し、Bootstrap をインストールします。コマンド ラインから直接実行します。

bower install bootstrap

これをダウンロードすると、Bootstrap の最新の安定バージョンが取得されます。パッケージ ディレクトリの Bower_components/bootstrap/dist/ には、開発プロセス中によく使用される Bootstrap の CSS、JS、フォント、3 つのスタイル ファイル、JS、フォント ファイルが含まれています。成功すると、次のように表示されます:

Laravelはユーザー登録とログインを実装します

注: ここで使用されるツール bower は、いくつかのフロントエンド パッケージの管理を担当します。
この時点で、予備作業の準備が整いました。ただし、次のステップに進む前に、laravel/app/storage ディレクトリに対応する書き込み権限があることを確認する必要があるため、bower のインストール後にコマンドラインに触れていない場合は、次のコマンドを直接渡すことができます。

cd ../../

laravel ディレクトリに戻り、次を実行します。

chmod -R 755 app/storage

このステップを完了すると、実際の開発段階に入ることができます。

3. データベースを設定してテーブルを作成します:

設定を開始する前に、laravel アプリケーション用のデータベースを作成する必要があります。これに

Laravelはユーザー登録とログインを実装します という名前を付けてから、エディターの設定で app/ を開きます。 /database.php ファイルに、次のような対応するデータベース構成項目を入力します。

'default' => 'mysql',
// 数据库连接
'connections' => array(
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'database'  => 'laravel-start',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

データベースに接続した後、Users テーブルを作成する必要があります。Users テーブルはデータベースに直接作成することも、Laravel のテーブルを使用することもできます。ここでは、Laravel のアルティザンを使用してテーブルを作成し、Laravel の移行について少し学びます。次のステートメントを実行します:

php Artisan merge:make create-users-table

上記のコマンドは、移行ファイルを作成します (ファイルは app/database/migrations ディレクトリにあります)。このファイルの名前は create-users です。 -table を選択すると、生成した移行ファイルを編集して Users テーブルを作成できます。

public function up() {
       Schema::create('users', function($table){
        $table->increments('id');
        $table->string('username', 20);
        $table->string('email', 100)->unique();
        $table->string('password', 64);
        $table->string('remember_token',62)->default('default');
        $table->timestamps();
        });
}

上記のメソッドは、laravel の Schema Builder クラスを使用しています。上記のコードは、up() メソッドを使用して、users テーブルを作成します。このテーブルには、ID の自動インクリメント、ユーザー名の長さ 20 以内、電子メールの長さ 100 以内の 5 つのフィールドがあります。そして、パスワードの長さは 64 以内である必要があります。 Remember_token は、ログイン時に便利で実用的なものにするためのものです。 Laravel はトークン値を自動的に入力しますが、最初にデフォルト値を設定し、現在のタイムスタンプを設定する必要があります。 。ここで注意する必要があるのは、いつか Users テーブルを削除する必要がある場合に備えて、次のコードを down() に追加することをお勧めします。

public function down()
{
    Schema::drop('users');
}

上記の操作を行った後、次の魔法のコマンドを実行します:

php artisan migrate

写真と真実があります:

Laravelはユーザー登録とログインを実装しますついに前奏曲は終わり、正式にLaravelに入ることができます。

4. 試してみるサービスを開始します

laravel ディレクトリで直接実行します:

php artisan serve

ブラウザを開き、localhost:8000 と入力して Enter キーを押します、ビンゴ!

ここまで無事に到達できたら、まず 30 秒間拍手をしてください。おめでとうございます。あなたは Laravel の扉に入りました。これからもさらに驚きを提供していきます...


5. パブリック ビューを作成します

好了,我们现在开始了,首先在app/views/文件夹下创建一个layouts文件夹,再再这个文件夹下新建一个php文件,命名为main.blade.php,在这个文件里写上下面这些代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>发现Laravel 4之美</title>
    </head>
    <body>
    </body>
</html>

PS:layouts文件夹通常用来存放视图文件的功用部分,比如一些网页的头部

和尾部
,这里就是存放了头部
部分
感觉main.blade.php的名字很奇怪?不用担心,Laravel的视图文件命名遵循filename.blade.php的规则,因为Laravel是用Blade这个模板引擎解析的,你不用深究,就照着上面的名字规则来命名视图文件就OK

为视图文件添加CSS样式:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>发现Laravel 4之美</title>
       {{HTML::style(&#39;packages/bower_components/bootstrap/dist/css/bootstrap.min.css&#39;) }}
        {{ HTML::style(&#39;css/main.css&#39;)}}
    </head>
    <body>
    </body>
</html>

没错,就是在原来的main.blade.php的基础上添加两行代码;然后我们来创建我们的main.css,这个主要是用来放我们自己定义的样式。在public文件夹下创建css文件夹,在css文件夹创建main.css文件,大功告成。

添加导航栏。在main.blade.php文件的

标签中加上以下代码:
<body>
        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand hidden-sm" href="/">Laravel新手上路</a>
                </div>
                <ul class="nav navbar-nav navbar-right hidden-sm">
                    <li>{{ HTML::link(&#39;users/register&#39;, &#39;注册&#39;) }}</li>
                    <li>{{ HTML::link(&#39;users/login&#39;, &#39;登陆&#39;) }}</li>
                </ul>
            </div>
        </div>
</body>

上面只是引用了一些简单的Bootstrap的class,也没什么难的,不用伤心。

到这里基本的功用部分就结束了,但是我们的追求从不会这么low,所以为了更好地与用户交互,我们希望在用户进行某个操作之后给出一些反馈,比如注册成功的时候说:少年,你已成功注册本站,恭喜恭喜。等,于是乎,我们再为main.blade.php添加一点点代码:

        <div class="container">
            @if(Session::has(&#39;message&#39;))
            <p class="alert">{{ Session::get(&#39;message&#39;) }}</p>
            @endif
        </div>

为了现实这些反馈信息给用户,我们得使用Session::get('message')方法,当然,我们得首先从逻辑上判断一下这个message是否存在,所以这里用了一个简单的if判断。

在blade引擎的视图中if 的使用格式是

@if(conditions) 
#code...
@endif

到这里就结束了么?NO,如果到这里就结束的话,其他的视图文件是怎么插入main.blade.php的

之间的呢?所以,不要忘了还有一个重要的事:{{ $content }},于是乎,上面的代码就变成了这样:
        <div class="container">
        @if(Session::has(&#39;message&#39;))
        <p class="alert">{{ Session::get(&#39;message&#39;) }}</p>
        @endif
        {{ $content }}
        </div>

{{ $content }}在这里就是表示其他的视图文件内容,你可以在理解上将其他的视图当作一个字符串来理解,只不过这个字符串很长,而且恰好包含了HTML标签而已。下面你将体会到这种想法。

创建完我们的公用视图main.blade.php后,我们先来为main.css添加我们的CSS样式:

body {
     padding-top: 60px;
 } 
.form-signup, .form-signin {
     margin: 0 auto;
 }

因为我们在main.blade.php文件中使用了

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。