2017-10-13 1 views
1

私は創始者の名前、情報、画像をアップロードできる創設者ページを持っています。 写真を編集して新しい写真をアップロードすると、写真の名前はデータベースに保存されますが、画像はアップロードされません。私のコントローラには何か問題があるに違いないが、私は何かを見つけることができない。どんな助けもありがとう。画像の編集/更新中にlaravel 5.2でmove()関数が動作しない

私のモデル、コントローラ、およびビューは以下のとおりです。

Founder Model

class Founder extends Model 
{ 
    protected $fillable = ['name','information', 'image']; 

    public function getImageAttribute() 
    { 
     if (! $this->attributes['image']) { 
      return 'noimage.jpg'; 
    } 

    return $this->attributes['image']; 
} 
public function getCreatedAtAttribute($date) 
{ 
    return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d'); 
} 

public function getUpdatedAtAttribute($date) 
{ 
    return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d'); 
} 

Founder Controller

public function update(Request $request, $id) 
{ 

    $founder = Founder::find($id); 
    $input = $request->all(); 

    if($file=$request->file('image')) 
    { 
     $name = $file->getClientOriginalName(); 
     $file->move('/images/', $name); 
     $input['image']= $name; 
    } 
    $founder->update($request->all()); 
    return redirect()->route('founder.view'); 

} 

創設者ビューの編集フォーム

<form class="form-horizontal" action="/founders/{{$founder->id}}" method="POST"> 

      {{csrf_field()}} 

       <input type="hidden" name="_method" value="PUT"> 
       <div class="form-group"> 
        <label class="col-md-12">Name</label> 
        <div class="col-md-12"> 
        <input type="text" name="name" class="form-control" value="{{$founder->name}}"> 
        </div> 
       </div> 

       <div class="form-group"> 
        <label class="col-md-12">Information</label> 
        <div class="col-md-12"> 
         <textarea class="form-control" name="information" rows="3" value="{{$founder->information}}">{{$founder->information}}</textarea> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label class="col-md-12">Change Image</label> 
        <div class="col-md-12"> 
         <input type="file" name="image" class="form-control" value="{{$founder->image}}"> 
        </div> 
       </div> 
       <button type="submit" name="submit" class="btn btn-success waves-effect waves-light m-r-10">Submit</button> 

</form> 
+1

それのあなたの実際のコードだけでなく、スクリーンショットを添付してください。誰もあなたのコードを入力するつもりはありません。 – milo526

+0

はコードで質問を編集しました。ありがとう! –

答えて

0

は、名前の変更を使用してみてください:

rename ('current/path/to/foo', 'new/path/to/foo'); 

ドキュメント:http://php.net/rename

UPDATE: または変数$ destinationPathを使用します。

$file->move($destinationPath, $chooseYourFileName); 
+0

どちらのオプションも機能しませんでした。イメージ名は更新されていますが、ファイルはまだアップロードされていません。 –

関連する問題