2017-04-18 3 views
1

私は私のアプリで登録したユーザとの投稿を公開しようとしているが、このエラーが起こった: enter image description here列は、SQL laravelには見られない5.4

をそして、私はXAMPPを使用していて、私の記事の表は、この絵 ですenter image description here

、このエラーはphpMyAdminのである: enter image description here

マイPostControllerは次のとおりです。

use App\Post; 

    class PostsController extends Controller 

{ 

public function __construct() 
{ 
    $this->middleware('auth')->except(['index','show']); 
} 

public function index() 
{ 
    $posts=Post::latest()->get(); 

    return view('posts.index',compact('posts')); 
} 

public function show(Post $post) 
{ 

    return view('posts.show',compact('post')); 
} 

public function create() 
{ 
    return view('posts.create'); 
} 

public function store() 
{ 

    $this->validate(request(),[ 
     'title'=>'required', 
     'body' => 'required|min:5' 
    ]); 


    Post::create(request([ 
     'title' => request('title'), 
     'body' => request('body'), 
     'user_id' =>auth()->id() 
     //auth()->user()->id*/ 
    ])); 

    return redirect()->home; 
} 

}

とPostモデル:

class Post extends Model 
{ 
    public function comments() 
    { 
     return $this->hasMany(Comment::class); 
    } 

    public function user() 
    { 
     return $this->belongsTo(User::class); 
    } 
} 
+0

解析に役立つLaravelコード(Model + Controller)を表示できますか? –

+0

@NapoleãoWingertはい私は私の質問を編集しました。 –

答えて

3

店舗の方法が間違っているようです。

public function store() 
{ 

    $this->validate(request(),[ 
     'title'=>'required', 
     'body' => 'required|min:5' 
    ]); 

    Post::create([ 
     'title' => request('title'), 
     'body' => request('body'), 
     'user_id' =>auth()->id() 
    ]); 

    return redirect()->home; 

} 

このコードは、あなたのために働く:

はこのような何かを試してみてください?

+0

はい! –

+0

私のコードが間違っている理由を説明してください。 –

+0

情報の配列を投稿の作成メソッドに転送する必要があるため、コードが間違っていました。メソッドはcolumn =>値を知る必要があります。以前は、リクエスト自体も送信しました。それで全部です... –

2
INSERT into posts (title, body, userId) VALUES ('My title', 'My body', 7) 

最初の部分は、フィールド名を指定し、第二部では、各フィールドに挿入される値を指定します。 「私のタイトル」はあなたが情報を挿入しているフィールドではなく、タイトルとして表示されます。

また、createdonはタイムスタンプを使用しているため、これを含める必要はありません。更新されると、レコードが変更されると現在のタイムスタンプを挿入できます。

+0

完全に書いてくださいどうすればいいですか? –

+0

上記の文にどのデータを挿入しようとしているのか分かりませんが、上記のかっこ内にあるVALUESの後のセクションに入るはずです。この問題は、フィールドの名前付けの仕方に現れます。 投稿へのINSERT(フィールド1、フィールド2、フィールド3)VALUES( 'フィールド1値'、 'フィールド2値'、 'フィールド3値') – user3561890

関連する問題