데이터베이스에서 만든 뷰를 Laravel로 가져오기
4636 단어 라라벨
소개
MySQL로 만든 뷰를 Laravel로 가져오는 방법에 대한 메모 감각으로.
개발 환경
・Laravel 7.30.4
· MySQL 5.7.32
프로젝트 만들기
텍토에 프로젝트를 만듭니다.
composer create-project --prefer-dist "laravel/laravel=7.*.*" hoge_app
.env 파일 변경
DB를 설정합니다.
사용하는 DB명은 텍토로 만들어 주세요.
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=world
DB_USERNAME=##########
DB_PASSWORD=##########
.env 파일 설정이 끝나면 프로젝트 디렉토리로 이동하여 다음 명령을 실행하십시오.
php artisan config:cache
이것을 실행하지 않으면 변경 내용이 반영되지 않으므로 반드시 하도록…
소통 확인(마이그레이션 실행)
아래의 명령을 실행하여 .env로 지정한 DB에 테이블을 작성할 수 있으면 소통 확인은 OK입니다.
php artisan migrate
실패하면 사용자 이름이나 비밀번호가 잘못되었을 가능성이 있으므로 다시 확인을…
모델 만들기
나는 "v_countryinformation"이라는 뷰를 만들었다.
덧붙여서 레코드는 이런 느낌입니다.
뷰 작성이 끝나면 모델링을 수행하는 명령을 실행합니다.
아래의 명령을 실행한 후, App 디렉토리에 「모델명.php」라고 하는 파일(이번은 CountryInfo.php)이 작성됩니다.
php artisan make:model CountryInfo[=モデル名]
생성된 모델 클래스에 다음 속성을 추가하고 참조할 뷰를 지정합니다.
CountryInfo.php<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CountryInfo extends Model
{
/**
*
* モデルと関連するビューを指定する
*/
protected $table = 'v_countryinformation';
}
비고: 테이블명과 모델명의 규칙성
모델에 사용할 테이블을 $table로 지정하지 않으면 자동으로 클래스 이름의 복수형 테이블을 참조합니다.
예를 들어, Person 모델이 참조하는 테이블은 Person의 다중 시스템인 People 테이블입니다.
Eloquent를 사용하여 뷰 레코드 얻기
이번에는 tinker로 취득 할 수 있는지 확인하기 때문에 아래의 명령에서 tinker를 시작합니다.
php artisan tinker
시작할 수 있으면 Eloquent를 사용하여 레코드를 검색합니다.
App\CountryInfo::where('Language', 'English')->first();
=> App\CountryInfo {#3351
Code: "ABW",
CountryName: "Aruba",
CountryPopulation: 103000,
Code2: "AW",
Capital: 129,
CityName: "Oranjestad",
CityPopulation: 29034,
Language: "English",
IsOfficial: "F",
Continent: "North America",
Region: "Caribbean",
}
잘 얻을 수 있었던 것 같습니다.
위의 결과는 다음 쿼리의 결과와 동일합니다.
SELECT * FROM v_countryinformation WHERE Language = 'English' LIMIT 1
또, 당연합니다만 쿼리 빌더를 사용해도 취득할 수 있습니다.
DB::table('v_countryinformation')->where('Language', 'English')->first();
=> {#3366
+"Code": "ABW",
+"CountryName": "Aruba",
+"CountryPopulation": 103000,
+"Code2": "AW",
+"Capital": 129,
+"CityName": "Oranjestad",
+"CityPopulation": 29034,
+"Language": "English",
+"IsOfficial": "F",
+"Continent": "North America",
+"Region": "Caribbean",
}
요약
엉망이라고 썼습니다만, 요컨대 모델 클래스의 $table 프로퍼티에 뷰를 지정하면 된다고 하는 것입니다.
쿼리 빌더에는 테이블을 조인하는 join 메소드도 있으므로, 일부러 뷰를 만들 필요도 없는 생각이 듭니다만, 개인적으로는 프로그램내에서 테이블 조인시키는 것보다는 뷰내에서 그것을 실시해, 그 뷰에 대해서 필터링하는 것이 적은 코드의 양으로 데이터를 얻을 수 있기 때문에 좋다고 생각했습니다.
참고
Reference
이 문제에 관하여(데이터베이스에서 만든 뷰를 Laravel로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syunya27212/items/00ae436ca3ac34261b3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
텍토에 프로젝트를 만듭니다.
composer create-project --prefer-dist "laravel/laravel=7.*.*" hoge_app
.env 파일 변경
DB를 설정합니다.
사용하는 DB명은 텍토로 만들어 주세요.
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=world
DB_USERNAME=##########
DB_PASSWORD=##########
.env 파일 설정이 끝나면 프로젝트 디렉토리로 이동하여 다음 명령을 실행하십시오.
php artisan config:cache
이것을 실행하지 않으면 변경 내용이 반영되지 않으므로 반드시 하도록…
소통 확인(마이그레이션 실행)
아래의 명령을 실행하여 .env로 지정한 DB에 테이블을 작성할 수 있으면 소통 확인은 OK입니다.
php artisan migrate
실패하면 사용자 이름이나 비밀번호가 잘못되었을 가능성이 있으므로 다시 확인을…
모델 만들기
나는 "v_countryinformation"이라는 뷰를 만들었다.
덧붙여서 레코드는 이런 느낌입니다.
뷰 작성이 끝나면 모델링을 수행하는 명령을 실행합니다.
아래의 명령을 실행한 후, App 디렉토리에 「모델명.php」라고 하는 파일(이번은 CountryInfo.php)이 작성됩니다.
php artisan make:model CountryInfo[=モデル名]
생성된 모델 클래스에 다음 속성을 추가하고 참조할 뷰를 지정합니다.
CountryInfo.php<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CountryInfo extends Model
{
/**
*
* モデルと関連するビューを指定する
*/
protected $table = 'v_countryinformation';
}
비고: 테이블명과 모델명의 규칙성
모델에 사용할 테이블을 $table로 지정하지 않으면 자동으로 클래스 이름의 복수형 테이블을 참조합니다.
예를 들어, Person 모델이 참조하는 테이블은 Person의 다중 시스템인 People 테이블입니다.
Eloquent를 사용하여 뷰 레코드 얻기
이번에는 tinker로 취득 할 수 있는지 확인하기 때문에 아래의 명령에서 tinker를 시작합니다.
php artisan tinker
시작할 수 있으면 Eloquent를 사용하여 레코드를 검색합니다.
App\CountryInfo::where('Language', 'English')->first();
=> App\CountryInfo {#3351
Code: "ABW",
CountryName: "Aruba",
CountryPopulation: 103000,
Code2: "AW",
Capital: 129,
CityName: "Oranjestad",
CityPopulation: 29034,
Language: "English",
IsOfficial: "F",
Continent: "North America",
Region: "Caribbean",
}
잘 얻을 수 있었던 것 같습니다.
위의 결과는 다음 쿼리의 결과와 동일합니다.
SELECT * FROM v_countryinformation WHERE Language = 'English' LIMIT 1
또, 당연합니다만 쿼리 빌더를 사용해도 취득할 수 있습니다.
DB::table('v_countryinformation')->where('Language', 'English')->first();
=> {#3366
+"Code": "ABW",
+"CountryName": "Aruba",
+"CountryPopulation": 103000,
+"Code2": "AW",
+"Capital": 129,
+"CityName": "Oranjestad",
+"CityPopulation": 29034,
+"Language": "English",
+"IsOfficial": "F",
+"Continent": "North America",
+"Region": "Caribbean",
}
요약
엉망이라고 썼습니다만, 요컨대 모델 클래스의 $table 프로퍼티에 뷰를 지정하면 된다고 하는 것입니다.
쿼리 빌더에는 테이블을 조인하는 join 메소드도 있으므로, 일부러 뷰를 만들 필요도 없는 생각이 듭니다만, 개인적으로는 프로그램내에서 테이블 조인시키는 것보다는 뷰내에서 그것을 실시해, 그 뷰에 대해서 필터링하는 것이 적은 코드의 양으로 데이터를 얻을 수 있기 때문에 좋다고 생각했습니다.
참고
Reference
이 문제에 관하여(데이터베이스에서 만든 뷰를 Laravel로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syunya27212/items/00ae436ca3ac34261b3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=world
DB_USERNAME=##########
DB_PASSWORD=##########
php artisan config:cache
아래의 명령을 실행하여 .env로 지정한 DB에 테이블을 작성할 수 있으면 소통 확인은 OK입니다.
php artisan migrate
실패하면 사용자 이름이나 비밀번호가 잘못되었을 가능성이 있으므로 다시 확인을…
모델 만들기
나는 "v_countryinformation"이라는 뷰를 만들었다.
덧붙여서 레코드는 이런 느낌입니다.
뷰 작성이 끝나면 모델링을 수행하는 명령을 실행합니다.
아래의 명령을 실행한 후, App 디렉토리에 「모델명.php」라고 하는 파일(이번은 CountryInfo.php)이 작성됩니다.
php artisan make:model CountryInfo[=モデル名]
생성된 모델 클래스에 다음 속성을 추가하고 참조할 뷰를 지정합니다.
CountryInfo.php<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CountryInfo extends Model
{
/**
*
* モデルと関連するビューを指定する
*/
protected $table = 'v_countryinformation';
}
비고: 테이블명과 모델명의 규칙성
모델에 사용할 테이블을 $table로 지정하지 않으면 자동으로 클래스 이름의 복수형 테이블을 참조합니다.
예를 들어, Person 모델이 참조하는 테이블은 Person의 다중 시스템인 People 테이블입니다.
Eloquent를 사용하여 뷰 레코드 얻기
이번에는 tinker로 취득 할 수 있는지 확인하기 때문에 아래의 명령에서 tinker를 시작합니다.
php artisan tinker
시작할 수 있으면 Eloquent를 사용하여 레코드를 검색합니다.
App\CountryInfo::where('Language', 'English')->first();
=> App\CountryInfo {#3351
Code: "ABW",
CountryName: "Aruba",
CountryPopulation: 103000,
Code2: "AW",
Capital: 129,
CityName: "Oranjestad",
CityPopulation: 29034,
Language: "English",
IsOfficial: "F",
Continent: "North America",
Region: "Caribbean",
}
잘 얻을 수 있었던 것 같습니다.
위의 결과는 다음 쿼리의 결과와 동일합니다.
SELECT * FROM v_countryinformation WHERE Language = 'English' LIMIT 1
또, 당연합니다만 쿼리 빌더를 사용해도 취득할 수 있습니다.
DB::table('v_countryinformation')->where('Language', 'English')->first();
=> {#3366
+"Code": "ABW",
+"CountryName": "Aruba",
+"CountryPopulation": 103000,
+"Code2": "AW",
+"Capital": 129,
+"CityName": "Oranjestad",
+"CityPopulation": 29034,
+"Language": "English",
+"IsOfficial": "F",
+"Continent": "North America",
+"Region": "Caribbean",
}
요약
엉망이라고 썼습니다만, 요컨대 모델 클래스의 $table 프로퍼티에 뷰를 지정하면 된다고 하는 것입니다.
쿼리 빌더에는 테이블을 조인하는 join 메소드도 있으므로, 일부러 뷰를 만들 필요도 없는 생각이 듭니다만, 개인적으로는 프로그램내에서 테이블 조인시키는 것보다는 뷰내에서 그것을 실시해, 그 뷰에 대해서 필터링하는 것이 적은 코드의 양으로 데이터를 얻을 수 있기 때문에 좋다고 생각했습니다.
참고
Reference
이 문제에 관하여(데이터베이스에서 만든 뷰를 Laravel로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syunya27212/items/00ae436ca3ac34261b3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
php artisan make:model CountryInfo[=モデル名]
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CountryInfo extends Model
{
/**
*
* モデルと関連するビューを指定する
*/
protected $table = 'v_countryinformation';
}
이번에는 tinker로 취득 할 수 있는지 확인하기 때문에 아래의 명령에서 tinker를 시작합니다.
php artisan tinker
시작할 수 있으면 Eloquent를 사용하여 레코드를 검색합니다.
App\CountryInfo::where('Language', 'English')->first();
=> App\CountryInfo {#3351
Code: "ABW",
CountryName: "Aruba",
CountryPopulation: 103000,
Code2: "AW",
Capital: 129,
CityName: "Oranjestad",
CityPopulation: 29034,
Language: "English",
IsOfficial: "F",
Continent: "North America",
Region: "Caribbean",
}
잘 얻을 수 있었던 것 같습니다.
위의 결과는 다음 쿼리의 결과와 동일합니다.
SELECT * FROM v_countryinformation WHERE Language = 'English' LIMIT 1
또, 당연합니다만 쿼리 빌더를 사용해도 취득할 수 있습니다.
DB::table('v_countryinformation')->where('Language', 'English')->first();
=> {#3366
+"Code": "ABW",
+"CountryName": "Aruba",
+"CountryPopulation": 103000,
+"Code2": "AW",
+"Capital": 129,
+"CityName": "Oranjestad",
+"CityPopulation": 29034,
+"Language": "English",
+"IsOfficial": "F",
+"Continent": "North America",
+"Region": "Caribbean",
}
요약
엉망이라고 썼습니다만, 요컨대 모델 클래스의 $table 프로퍼티에 뷰를 지정하면 된다고 하는 것입니다.
쿼리 빌더에는 테이블을 조인하는 join 메소드도 있으므로, 일부러 뷰를 만들 필요도 없는 생각이 듭니다만, 개인적으로는 프로그램내에서 테이블 조인시키는 것보다는 뷰내에서 그것을 실시해, 그 뷰에 대해서 필터링하는 것이 적은 코드의 양으로 데이터를 얻을 수 있기 때문에 좋다고 생각했습니다.
참고
Reference
이 문제에 관하여(데이터베이스에서 만든 뷰를 Laravel로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syunya27212/items/00ae436ca3ac34261b3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(데이터베이스에서 만든 뷰를 Laravel로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syunya27212/items/00ae436ca3ac34261b3e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)