2016-07-16 8 views
0

私はバイヤーモデルを持っていますが、現在のデータを変更して保存したい場合は保存しません。 $ buyer-> save()は1を返しますが、データベースのデータは変更されません。ルーメンEloquent save()データベースのデータを更新しません

P.S. 私のデータベースには、id、created_at、およびupdated_atフィールドがあります。 $買い手が空ではない、それは私が( 'Pコード'、 '禁止'、 'HWID')を要求したデータとオブジェクトの

私のコード

namespace App\Http\Controllers; 

use App\TGOBuyer as Buyer; 

class SubController extends Controller 
{ 
    public function ban($key){ 
     $buyer = Buyer::where('pCode', $key)->select('pCode', 'banned', 'hwid')->first(); 
     if (!$buyer || $buyer->banned) 
      return response()->json(['wrong' => 'key']); 

     $buyer->comment = 'test'; 
     $buyer->banned = 1; 
     $buyer->save(); 
    } 
} 

バイヤーモデル 名前空間のApp。

use Illuminate\Database\Eloquent\Model; 

class TGOBuyer extends Model { 
    protected $table = 'buyers'; 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'banned', 'comment', 'pCode', 'hwid' 
    ]; 
} 

更新 が、私は$の購入者>のidを返すようにしようと試み、それがnull私を与え、それがなぜ起こるか、私はそれを得ることはありません。

これは、私はそれを得る私のデシベル

CREATE TABLE IF NOT EXISTS `buyers` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `pCode` varchar(20) NOT NULL, 
    `banned` tinyint(1) NOT NULL DEFAULT '0', 
    `comment` text NOT NULL, 
    `created_at` datetime NOT NULL, 
    `updated_at` datetime NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `pCode` (`pCode`), 
    UNIQUE KEY `id_2` (`id`), 
    KEY `id` (`id`), 
    KEY `hwid` (`hwid`), 
    KEY `pID` (`pID`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=22468 ; 

答えて

1

です。選択クエリにidを含める必要があります。今、すべての仕事はうまくいきます。

$buyer = Buyer::where('pCode', $key)->select('id', 'pCode', 'banned', 'hwid')->first(); 
関連する問題