2017-12-25 7 views
0

$ attachOneの関係を使って画像/ファイルをユーザーに添付しようとしています。私はファイルをコンポーネントからアップロードするように見えません。ここに私のコードの一部は次のとおりです。アバターは常にヌルです

モデル:

public $rules = [ 
     'email' => 'required|between:6,255|email|unique:users', 
     'avatar' => 'nullable|image|max:4000', 
     'username' => 'required|between:2,255|unique:users', 
     'password' => 'required:create|between:4,255|confirmed', 
     'password_confirmation' => 'required_with:password|between:4,255', 
    ]; 

    public $attachOne = [ 
     'avatar' => \System\Models\File::class 
    ]; 

    protected $fillable = [ 
     'name', 
     'surname', 
     'login', 
     'avatar', 
     'username', 
     'email', 
     'telegram', 
     'phone', 
     'skype', 
     'password', 
     'password_confirmation' 
    ]; 

コンポーネント:あなたが後$user->avatarを行う必要があり

{{ form_ajax('onUpdate', { model: user,files: true }) }} 
<input type="file" name="avatar"> 
+0

あなたのサイトURLまたは使用している10月のビルド(バージョン)を共有できますか? –

+0

バグ: '!$ user = $ this-> user()'は、その値をテストするのではなく、 '$ user'を割り当てています。テストには '=='または '==='を使います。また、 '$ user'はそこに定義されていないので、テストはうまくいかないでしょう...おそらく' $ user'が 'onUpdate()'のパラメータとして必要でしょうか? –

+0

これはバグではありません@ Don'tPanic '$ user = $ this-> user()'は最初に '$ user'に値を割り当て、ユーザーがログインしていないと仮定すると' nullを返します'!{user-model}'の結果が 'false'になり、ログインしていなければ'!null'になるので、 'true'と関数は' return'をさらに実行しません –

答えて

0

:のdefault.htmコードの

public function onUpdate() 
    { 
     if (!$user = $this->user()) { 
      return; 
     } 

     if (Input::hasFile('avatar')) { 
      $user->avatar = Input::file('avatar'); 
     } 


     $user->fill(post());   
     $user->save(); 
     return $redirect; 

} 

ワンピースfill()メソッドを実行しています。また、ファイル名ではなく、ファイル名をDBに保存する必要があります。

$user->avatar = request()->avatar->getClientOriginalName(); 
+0

は(=助けにはならなかった – zoinx2012

+0

дажееслиназначулюбоезначениеする$ user->アバター、наследующейстрокеделаюCвыводомユーザーを死ぬ、итамアバター= NULL =( – zoinx2012

+0

は、テーブルの移行をご提示ください。 –

関連する問題