> 헤드라인 > Laravel 튜토리얼 기본 사항 및 데이터베이스 작동 방법

Laravel 튜토리얼 기본 사항 및 데이터베이스 작동 방법

伊谢尔伦
풀어 주다: 2017-07-10 11:51:13
원래의
1833명이 탐색했습니다.

Laravel은 가장 우아한 PHP 프레임워크입니다. PHP를 배우는 많은 친구들은 오랫동안 Laravel을 탐냈습니다. 처음부터 시작하여 기본 기능은 물론 데이터베이스 작업을 설치하고 사용하는 방법을 가르쳐 드리겠습니다. 오늘 우리의 PHP 중국어 웹사이트는 여러분에게 몇 가지 학습과 연습을 제공할 것입니다.

PHP 중국어 웹사이트에서 제공하는 비디오 튜토리얼을 배울 수 있습니다:

1. Laravel 쉽게 배우기 - 기본

관련 링크: http://www.php.cn/ Course /282.html

2. Laravel 쉽게 배우기 - 고급 비디오 튜토리얼

관련 링크: http://www.php.cn/course/402.html

아래에서 시작하세요 Laravel 프레임워크를 사용해보세요!

Installation

Laravel 프레임워크는 Composer를 사용하여 설치 및 종속성 관리를 수행합니다. 아직 설치하지 않았다면 지금 Composer 설치를 시작하세요.

Composer를 설치한 후 다음 명령을 사용하여 명령줄을 통해 Laravel을 설치할 수 있습니다:

composer create-project laravel/laravel your-project-name
또는 Github 저장소에서 다운로드할 수 있습니다. 다음으로 Composer를 설치한 후 프로젝트 루트 디렉터리에서 Composer install 명령어를 실행합니다. 이 명령은 프레임워크의 종속 구성 요소를 다운로드하고 설치합니다.

쓰기 권한

디렉토리 구조

프레임워크 설치 후, 프로젝트의 디렉토리 구조를 숙지해야 합니다. 앱 폴더에는 뷰, 컨트롤러, 모델과 같은 디렉터리가 포함되어 있습니다. 프로그램의 대부분의 코드는 이 디렉터리에 저장됩니다. app/config 폴더에서 일부 구성 항목을 확인할 수도 있습니다.

Routing

첫 번째 경로를 만드는 것부터 시작해 보겠습니다. Laravel에서 라우팅하는 간단한 방법은 클로저를 사용하는 것입니다. app/routes.php 파일을 열고 다음 코드를 추가하세요.

Route::get('users', function()
{
    return 'Users!';
});
로그인 후 복사

이제 웹 브라우저에 /users를 입력하면 사용자 출력이 표시됩니다. 엄청난! 첫 번째 경로가 생성되었습니다.

경로를 컨트롤러 클래스에 할당할 수도 있습니다. 예:

Create View

다음으로 사용자 데이터를 표시할 뷰를 만들어야 합니다. 보기는 app/views 폴더에 HTML 코드로 저장됩니다. 이 폴더에 두 개의 보기 파일(layout.blade.php 및 users.blade.php)을 배치합니다. 먼저,layout.blade.php 파일을 생성해 봅시다:

<html>
    <body>
        <h1>Laravel Quickstart</h1>
                @yield(&#39;content&#39;)
    </body>
</html>
로그인 후 복사

다음으로, users.blade.php 뷰를 생성합니다:

@extends(&#39;layout&#39;)
@section(&#39;content&#39;)    
Users!
@stop
로그인 후 복사

여기의 구문은 여러분에게 생소할 수 있습니다. 우리는 Laravel의 템플릿 시스템인 Blade를 사용하고 있기 때문입니다. Blade는 소수의 정규 표현식만 사용하여 템플릿에 대한 원시 PHP 코드를 컴파일하기 때문에 매우 빠릅니다. Blade는 템플릿 상속과 같은 강력한 기능은 물론 if 및 for와 같은 몇 가지 일반적인 PHP 제어 구조 구문 설탕도 제공합니다. 자세한 내용은 블레이드 문서를 확인하세요.

이제 뷰가 ​​표시되었으므로 /users 경로로 돌아가겠습니다. 사용자를 반환하는 대신 뷰를 사용합니다!:

Route::get(&#39;users&#39;, function()
{
    return View::make(&#39;users&#39;);
});
로그인 후 복사

아름답다! 이제 레이아웃에서 상속되는 뷰를 성공적으로 만들었습니다. 다음으로 데이터베이스 계층부터 시작하겠습니다.

Creating Migration

데이터를 보관할 테이블을 만들기 위해 Laravel 마이그레이션 시스템을 사용하겠습니다. 마이그레이션은 데이터베이스 변경 사항을 설명하므로 팀 구성원과 쉽게 공유할 수 있습니다.

먼저 데이터베이스 연결을 구성합니다. app/config/database.php 파일에서 모든 데이터베이스 연결 정보를 구성할 수 있습니다. 기본적으로 Laravel은 SQLite를 사용하도록 구성되어 있으며 SQLite 데이터베이스는 app/database 디렉터리에 저장됩니다. 데이터베이스 구성 파일의 드라이버 옵션을 mysql로 ​​수정하고 mysql 연결 정보를 구성할 수 있습니다.

다음으로 마이그레이션을 생성하기 위해 Artisan CLI를 사용하겠습니다. 프로젝트 루트 디렉터리의 터미널에서 다음 명령을 실행합니다.

php artisan migrate:make create_users_table
로그인 후 복사

그런 다음 app/database/migrations 디렉터리에서 생성된 마이그레이션 파일을 찾습니다. 이 파일에는 up 및 down이라는 두 가지 메서드가 있는 클래스가 포함되어 있습니다. up 메소드에서는 데이터베이스 테이블에 대한 수정 사항의 이름을 지정하고 down 메소드에서는 이를 제거하기만 하면 됩니다.

다음과 같이 마이그레이션을 정의하겠습니다.

public function up()
{
    Schema::create(&#39;users&#39;, function($table)
    {
        $table->increments(&#39;id&#39;);
        $table->string(&#39;email&#39;)->unique();
        $table->string(&#39;name&#39;);
        $table->timestamps();
    });
}
public function down()
{
    Schema::drop(&#39;users&#39;);
}
로그인 후 복사

그런 다음 터미널을 사용하여 프로젝트 루트 디렉터리에서 migration 명령을 실행하여 마이그레이션을 실행합니다.

php artisan migrate
로그인 후 복사

마이그레이션을 롤백하려면 마이그레이션을 실행할 수 있습니다. 롤백 명령. 이제 데이터베이스 테이블이 있으므로 데이터를 추가해 보겠습니다.

Eloquent ORM

Laravel 提供非常棒的 ORM:Eloquent。如果你使用过 Ruby on Rails 框架,你会发现 Eloquent 很相似,因为它遵循数据库交互的 ActiveRecord ORM 风格。

首先,让我们来定义个模型。ELoquent 模型可以用来查询相关数据表,以及表内的某一行。别着急,我们很快会谈及!模型通常存放在 app/models 目录。让我们在该目录定义个 User.php 模型,如:

class User extends Eloquent {}
로그인 후 복사

注意我们并没有告诉 Eloquent 使用哪个表。Eloquent 有多种约定, 一个是使用模型的复数形式作为模型的数据库表。非常方便!

使用你喜欢的数据库管理工具,插入几行数据到 users 表,我们将使用 Eloquent 取得它们并传递到视图中。

现在我们修改我们 /users 路由如下:

Route::get(&#39;users&#39;, function()
{
    $users = User::all();
    return View::make(&#39;users&#39;)->with(&#39;users&#39;, $users);
});
로그인 후 복사

让我们来看看该路由。首先,User 模型的 all 方法将会从 users 表中取得所有记录。接下来,我们通过 with 方法将这些记录传递到视图。with 方法接受一个键和一个值,那么该值就可以在视图中使用了。

激动啊。现在我们准备将用户显示在我们视图!

显示数据

现在我们视图中已经可以访问 users 类,我们可以如下显示它们:


@extends(&#39;layout&#39;)
@section(&#39;content&#39;)
    @foreach($users as $user)
        <p>{{ $user->name }}</p>
    @endforeach
@stop
로그인 후 복사

你可以发现没有找到 echo 语句。当使用 Blade 时,你可以使用两个花括号来输出数据。非常简单,你现在应该可以通过 /users 路由来查看到用户姓名作为响应输出。

下面来介绍一下如何操作数据库:

一、读/写连接

有时您可能希望使用一个SELECT语句的数据库连接,,另一个用于插入、更新和删除语句。Laravel使这微风,将始终使用正确的连接是否使用原始查询,查询生成器或雄辩的ORM。

二、运行查询

一旦你已经配置了数据库连接,你可以使用DB运行查询类。

运行一个Select查询

$results = DB::select(&#39;select * from users where id = ?&#39;, array(1));
로그인 후 복사

结果的选择方法总是返回一个数组。

运行一个Insert语句

DB::insert(&#39;insert into users (id, name) values (?, ?)&#39;, array(1, &#39;Dayle&#39;));
로그인 후 복사

运行一个更新语句

DB::update(&#39;update users set votes = 100 where name = ?&#39;, array(&#39;John&#39;));
로그인 후 복사

运行一个Delete语句

DB::delete(&#39;delete from users&#39;);
로그인 후 복사

注意:update和delete语句返回的行数的影响操作。

运行一个通用声明

DB::statement(&#39;drop table users&#39;);
로그인 후 복사

查询事件监听

你可以查询事件监听使用DB::听方法:

DB::listen(function($sql, $bindings, $time){ //});
로그인 후 복사

三、数据库事务

  运行在一个数据库事务的一组操作,您可以使用事务方法:

 DB::transaction(function(){ DB::table(&#39;users&#39;)->update(array(&#39;votes&#39; => 1)); DB::table(&#39;posts&#39;)->delete();});
로그인 후 복사

注意:在事务抛出的任何异常关闭将导致自动事务将回滚

有时你可能需要开始一个事务:

DB::beginTransaction();
로그인 후 복사

你可以通过回滚事务回滚方法:

DB::rollback();
로그인 후 복사

最后,您可以通过提交方法:提交一个事务

DB::commit();
로그인 후 복사

四、访问连接

当使用多个连接,你可以访问它们通过DB::连接方法:

$users = DB::connection(&#39;foo&#39;)->select(...);
로그인 후 복사

你也可以访问原始的、潜在的PDO实例:

$pdo = DB::connection()->getPdo();
로그인 후 복사

有时你可能需要重新连接到一个给定的数据库:

DB::reconnect(&#39;foo&#39;);
로그인 후 복사

如果你需要断开从给定的数据库将超过底层PDO实例'smax_connections限制,使用断开连接方法:

DB::disconnect(&#39;foo&#39;);
로그인 후 복사

五、查询日志

默认情况下,Laravel日志保存在内存的所有查询运行当前的请求。然而,在某些情况下,例如当插入的行数,这可能会导致应用程序使用多余的内存。禁用日志,你可以使用disableQueryLog方法:

DB::connection()->disableQueryLog();
로그인 후 복사

o得到一组执行的查询,您可以使用getQueryLog方法:

$queries = DB::getQueryLog();
로그인 후 복사


相关推荐:

1. 云服务器上部署Laravel的实例教程

2. Laravel学习-数据库操作和查询构造器的示例代码分享

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿