2014-07-09 53 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(); 
    }); 
} 

是什麼奇怪的是,我的Seedfile完全可以節省我的表內的一切:

我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) 
      ]); 
     } 
    } 

} 

所以,這是很奇怪,因爲這個名字被完美地保存,但不'description'而不是'tag',這樣在我的播種機準備就緒後,我手動創建令牌,除了描述和標籤之外,所有內容都會被保存。

這裏是如何看起來像:

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

好像有一定只是一個字寫錯了,但我檢查了一百次,無法找到原因,爲什麼它是沒有保存。

任何幫助,非常感謝。

親切的問候,

喬治

+1

只是在黑暗中刺...你有沒有在令牌模型上定義'$ fillable'屬性? ([文檔】(http://laravel.com/docs/eloquent#mass-assignment))。我不知道爲什麼它會播種,但不是生產代碼,但播種只是工作不同? – Kryten

+0

謝謝。發生這種情況,如果你使用的是Code,這是以前由其他人制作的。你能否將你的評論寫成解決方案,因爲我想檢查它是否正確。它確實是模型,它具有靜態可填充屬性。非常感謝你。 – LoveAndHappiness

+1

會做。很高興我能幫上忙。 – Kryten

回答

1

爲了使用create方法上的模型,你要設置的屬性必須與fillable屬性來指定。 Here's the documentation

我不知道爲什麼它會播種,但不生產代碼。也許播種以某種方式繞過create方法,並直接將值寫入數據庫。