2017-10-24 12 views
0

user_infoテーブルとuserImageテーブルとの1対1の関係を行うのに問題があります。画像をアップロードしようとすると、自分のデータベースに保存されず、user_idは0になりました。過去にCRUDではなく1対多の関係を1対1の関係で成功させることができました。誰でも助けてくれますか?私が何をすべきかについて私が参照したりアドバイスしたりするためのいくつかの例を私に教えてください。事前のおかげでここCRUDを実行しているときに1対1の関係

が私の現在のコードは次のとおりです。 createController:

public function create1(){ 

    return view('create1'); 
} 

public function store1(Request $request){ 
    $this->validate($request, [ 
     'input_img' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 
    ]); 

$user_info = Session::get('data'); 
     $UserImage = new UserImage($request->input()) ; 


if($request->hasFile('input_img')) { 

$file = $request->file('input_img'); 

$fileName = $file->getClientOriginalName(); 
     $destinationPath = public_path().'/images' ; 
     $file->move($destinationPath,$fileName); 
     $UserImage->userImage = $fileName ; 
     $UserImage = UserImage::create(['file' => $request->file('input_img')]); 
     $UserImage->user_infos()->associate($user_info); 
    } 

    $UserImage->save() ; 

    return redirect('/home'); 
} 

にHomeController私は画像を表示する方法

public function getInfo($id) { 

    $data = personal_info::where('id',$id)->get(); 
     $data3=UserImage::where('user_id',$id)->get(); 
return view('test',compact('data','data3')); 

blade.php((これは私が私の情報をプリントアウトする場所です)表示中)

@foreach ($data3 as $object9) 
<img width="100" height="100" src="{!! $object9->userImage!!}"> 
    @endforeach 

UserImageモデル(表Iでは、バイナリ形式をsこれは私はあなたがそのコードをクリーンアップし、ステップの多くを簡素化するためにLaravel relationsをチェックアウトする必要があります)

 <form class="form-horizontal" method="post" action="{{ url('/userUpload')}}" enctype="multipart/form-data"> 

         {{ csrf_field() }} 


<div class="form-group"> 
    <label for="imageInput" class="control-label col-sm-3">Upload Image</label> 
      <div class="col-sm-9"> 
      <input data-preview="#preview" name="input_img" type="file" id="imageInput"> 
      <img class="col-sm-6" id="preview" src="" ></img> 
     </div> 
    </div> 

<div class="form-group"> 
      <div class="col-md-6-offset-2"> 
       <input type="submit" class="btn btn-primary" value="Save"> 
      </div> 
      </div> 
      </form> 

答えて

0

画像をアップロードする方法である(

class UserImage extends Eloquent 
    { 
      protected $fillable = array('userImage','user_id'); 
     public function user_infos() { 
      return $this->belongsTo('App\user_info', 'user_id', 'id'); 
     } 

class user_info extends Eloquent 
{ 
    protected $fillable = array('Email', 'Name'); 
    protected $table = user_infos'; 
    protected $primaryKey = 'id'; 
     public function UserImages() { 
     return $this->hasOne('App\UserImage','user_id'); 
    } 
} 

create1.blade.php)DBに引き裂きました。

変更するには、そのメソッド内$UserImageの値をオーバーライドしている心の中でこの

$UserImage->user_id = $user_info; 

テイクのために、このライン

$UserImage->user_infos()->associate($user_info); 

+0

こんにちは、Lloopleさん、返信をお願いしますが、私が間違っている部分についてもっと教えてください。あなたのコードに変更した後、データベースに保存される画像は空白になるので、user_idも空白になります – blastme