2016-10-24 2 views
1

Laravel 시더에서 Faker을 사용하려고합니다. 여기Laravel 파종기에서 Faker를 사용하여 위도, 경도 정보를 생성하는 방법은 무엇입니까?

은 얼마나

<?php 

use Illuminate\Database\Seeder; 
use Faker\Factory as Faker; 

class LatitudeLongitudeTestTableSeeder extends Seeder 
{ 

    public function run() 
    { 
     $faker = new Faker; 

     $myTable = 'LatitudeLongitudeTest'; 

     foreach (range(1,10) as $index) { 
      DB::table($myTable)->insert([ 
       'Latitude' => $faker->Address->latitude, 
       'Longitude' => $faker->Address->longitude, 
       'name' => $faker->Address->street_name, 
      ]); 
     } 

    } 
} 

그러나 이것은 나에게 다음과 같은 오류

[ErrorException] 정의되지 않은 속성주고있다처럼 내 시더 클래스보기 : 위조자 \ 공장 : $ 주소

또한이 $faker->longitude과 같은 경도 속성에 액세스하려고 시도했지만 여전히 작동하지 않았습니다.

faker에서 경도 속성에 액세스하여 데이터를 생성하려면 어떻게해야합니까?

답변

2

속성으로 latitute 등을 추가해야합니다.

$faker->latitude(-90, 90) 

또는 :

$faker->latitude() 
+0

'[심포니 \ 구성 요소 \ 디버그 \ 예외 \의 FatalErrorException처럼 무엇을해야 하나 ] 정의되지 않은 메서드 호출 Faker \ Factory :: latitude()'다른 faker 라이브러리를 가져와야 할 것 같습니다. 이것은 내가 composer.json 파일에서 require-dev 섹션''fzaninotto/faker '아래에있는 것입니다 : "~ 1.4",' – Jaylen

+0

@Jaylen, 방금 테스트 해본 결과 작동합니다. 당신과 같은 버전이 있어요. 'composer update'를 실행 해보십시오. 패키지가 올바르게 설치되지 않았을 수도 있습니다. –

+0

방금 ​​모든 업데이트가 끝났습니다. 그러나 여전히이 에러가 발생합니다'[Symfony \ Component \ Debug \ Exception \ FatalErrorException] 정의되지 않은 메소드 호출 Faker \ Factory :: latitude()' – Jaylen

0

문제는 당신이 위조자의 객체와 static 참조를 혼합 한 것입니다 그래서,이 같은 것을보십시오. 당신은

Faker::Address.latitude 

같은 정적 참조를 사용하거나 개체와 함께 사용 싶다면 나는이 오류가이

$faker = new Faker(); $faker->address()->latitude;