2016-04-02 1 views
3

に1にデータを更新するために、私は2つのテーブルを持っています。だから私が更新をクリックすると、それは特定のユーザーデータを読み込む必要があります。ロードされますが、保存ボタンをクリックしてsave.Itを更新すると、次のエラーが表示されます。 PostController.php線78でLaravel:私は、ユーザー情報を保存した後のテーブルで</p> <pre><code>1. User. 2. Post. </code></pre> <p>:どのように雄弁関係

FatalErrorException:)(埋める\未定義 機能のApp \のHttp \コントローラーに呼び出し

私は私が私のpostUpdateコントローラに問題があると思います。しかし、私は問題を見つけることができませんでした。ここで

は私のUserモデルである:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Post extends Model 
{ 
     protected $fillable = [ 
    'first_name', 'middle_name', 'last_name','gender',       'dob','nationality','nid','email','phone_no','about_me' 
]; 
    public function user() 
    { 
     return $this->belongsTo('App\User'); //Profile is your profile model 
    } 
} 

そして、ここでは私のポストのコントローラーである:ここで

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Http\Response; 
use App\Http\Requests; 
use App\Post; 
use App\User; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Storage; 
use Illuminate\Support\Facades\File; 

class PostController extends Controller 
{ 


    public function getDashboard() 
    {   
    $posts = Post::all(); 
      return view('dashboard',['posts'=>$posts]); 
    } 


    public function postCreate(Request $request){ 
    $this->validate($request,[ 
     'first_name'=> 'required|max:120', 
     'middle_name'=> 'required|max:120', 
     'last_name' => 'required|max:120', 
     'gender'=> 'required', 
     'dob'=>'required', 
     'nationality'=>'required', 
     'nid'=>'required', 
     'email' => 'required|email|unique:users', 
     'phone_no'=>'required', 
     'about_me'=>'required', 
     ]); 

    $post = new Post(); 
     $post->first_name = $request['first_name']; 
     $post->middle_name = $request['middle_name']; 
     $post->last_name = $request['last_name']; 
     $post->gender = $request['gender']; 
     $post->dob = $request['dob']; 
     $post->nationality = $request['nationality']; 
     $post->nid = $request['nid']; 
     $post->email = $request['email']; 
     $post->phone_no = $request['phone_no']; 
     $post->about_me = $request['about_me'];   
     $message='There was an Error'; 
     if($request->user()->post()->save($post)){ 
      $message = "Profile Created successfully"; 
     } 
     return redirect()->route('dashboard')->with(['message' => $message]); 

    } 


    public function postUpdate(Request $request) 
    { 
      $this->validate($request,[ 
      'first_name'=> 'required|max:120', 
      'middle_name'=> 'required|max:120', 
      'last_name' => 'required|max:120', 
      'gender'=> 'required', 
      'dob'=>'required', 
      'nationality'=>'required', 
      'nid'=>'required', 
      'email' => 'required|email|unique:users', 
      'phone_no'=>'required', 
      'about_me'=>'required', 
      ]); 


     $request->user()->post()->update(fill($request->all())) ; 

     return redirect()->route('dashboard'); 
     } 



} 

答えて

1

、あなたが取得している。ここ

<?php 

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 

    protected $fillable = [ 
     'name', 'email', 'password', 
    ]; 


    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 

    public function post() 
    { 
     return $this->hasOne('App\Post'); //Profile is your profile model 
    } 
} 

は私のポストモデルであります投稿集:

$data=Post::all(); 

しかし、配列を渡す必要があります。それを置き換えるようにしてください:

$data = $request->only('first_name', 'middle_name', 'last_name', 'gender', 'dob', 'nationality', 'nid', 'email', 'phone_no', 'about_me'); 
+1

ありがとう、最後に問題を解決しました。 – Hola

関連する問題

 関連する問題