2014-07-09 1 views
0

에 데이터를 저장 할 수 없습니다Laravel : 나는 내 토큰 표 안에 토큰을 저장할 표

내 매장 방법 내 TokenController.php의는 다음과 같습니다

여기
public function store() { 

    $user = Sentry::getUser(); 
    $user = User::with('tokens')->where('id', $user->id)->first(); 

    Token::create([ 
     'user_id'  => $user->id, 
     'name'  => Input::get('tokenname'), 
     'description' => 'whatever', 
     'tag'   => 'whatever1', 
    ]); 

내입니다 가게-방법으로 데이터를 전송 내보기, 표 :

<table> 
    {{Form::open(array('route' => array('admin.referencing.store', $user->id), 'method' => 'POST', 'id'=>'tokenCreateForm'))}} 

     <div class="form-group"> 
      {{ Form::input('number', 'numberoftokens', false, array('placeholder' => 'Number of Tokens', 'id' => 'numberoftokens')) }} 
     </div> 

     <div class="form-group"> 
      {{ Form::input('text', 'tokenname', false, array('placeholder' => 'Name of Token', 'id' => 'tokenname')) }} 
     </div> 

     <div class="form-group"> 
      {{ Form::input('text', 'tokendescription', false, array('placeholder' => 'Description', 'id' => 'tokendescription')) }} 
     </div> 

     <div class="form-group"> 
      {{ Form::input('text', 'tokentag', false, array('placeholder' => 'Tag', 'id' => 'tokentag')) }} 
     </div> 

     <div class="form-group"> 
      <button class="btn btn-primary" type="submit"> 
       <i class="fa fa-save"></i> 
       Create 
      </button> 
     </div> 

    {{Form::close()}} 
    </table> 

그리고 이것은 내 데이터베이스 (내 토큰 마이그레이션) 같은 모습입니다

이상한 무엇
public function up() 
{ 
    Schema::create('tokens', function(Blueprint $table) 
    { 
     $table->increments('id'); 
     $table->integer('user_id')->unsigned()->index(); 
     $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 
     $table->string('name', 60)->index(); 
     $table->string('description'); 
     $table->string('tag'); 
     $table->timestamps(); 
    }); 
} 

, 내 시드 파일 내 표 안에 모든 것을 완벽을 절약 할 수 있다는 것입니다 :

내 TokenTableSeeder : 이름이 완벽하게 저장 아니라 도착하기 때문에

class TokenTableSeeder extends Seeder { 

    public function run() 
    { 
     $faker = Faker::create(); 

     Token::truncate(); 

     foreach(range(1, 10) as $index) 
     { 
      Token::create([ 
       'user_id'  => rand(1,4), 
       'name'  => $faker->country, 
       'description' => $faker->name, 
       'tag'   => rand(1,4) 
      ]); 
     } 
    } 

} 

그래서, 그것은 정말 이상한 '설명'이 아니라 '태그'가 아니므로, 시드가 준비되고 수동으로 토큰을 만든 후에 설명과 태그를 제외하고 모든 내용이 저장됩니다. 여기

처럼 보이는 방법입니다 단지 단어를 잘못 쓴이 있어야합니다 것 같다

http://i.imgur.com/x3dRF6d.jpg

, 그러나 나는 백 번을 확인하고 왜, 이유를 찾을 수 없습니다 저장되지 않았습니다.

도움을 주시면 대단히 감사하겠습니다.

친절 감사를, 모델에 create 방법을 사용하기 위해서는

조지는

+1

어둠 속에서 단지 찌르기 ... 토큰 모델에'$ fillable' 속성을 정의 했습니까? ([documentation] (http://laravel.com/docs/eloquent#mass-assignment)). 왜 씨앗을 뿌리기 위해 작동하지만 생산 코드가 아닌지를 알 수는 없지만 씨 뿌리기는 다르게 작동합니다. – Kryten

+0

고맙습니다. 코드로 작업하는 경우 다른 사람이 이전에 제작 한 것입니다. 솔루션으로 의견을 작성해주십시오. 올바른 것으로 확인하고 싶습니다. 정적으로 채울 수있는 속성을 가진 것은 실제로 모델이었습니다. 고맙습니다. – LoveAndHappiness

+1

할 것입니다. 다행히 도울 수있어. – Kryten

답변

1

, 설정하고자하는 속성은 fillable 속성을 지정해야합니다. Here's the documentation.

씨앗을 뿌리기 위해 작동하는 이유가 무엇인지 모르겠지만 생산 코드는 아닙니다. 어쨌든 시딩은 create 메소드를 우회하여 데이터베이스에 직접 값을 씁니다.