2015-02-03 4 views
0

Я новичок в Laravel, поэтому я еще не знаком с ошибками, которые он возвращает, я надеюсь, что кто-то может мне помочь.Нет результатов запроса для модели [Пользователь] | laravel

Так что я создал простое приложение с регистрационной формой и формой входа и зарегистрированный пользователь может опубликовать все, что он/она хочет, но я получаю эту ошибку

Это форма, где пользователь может размещать:

@section('content') 

    <section class="header"> 
     <ul> 
      <li></li> 
      <li><a href="{{ URL::route('profile')}}" class="new">Back to Profile</a></li> 
     </ul> 

    </section> 
    <div class="newpost"> 
     <h3>What new today?</h3><br> 
     <form action="{{URL::route('createPost')}}" method="post" autocomplete="off"> 

     <div class="form-group"> 
      <label for="title">Title</label> 
      <input type="text" class="form-control" id="title" name="title" placeholder="Title..." required> 
     </div> 

     <div class="form-group"> 
      <label for="content">Write Report</label> 
      <textarea class="form-control" name="content" id="content" placeholder="Write Here..." rows="10"></textarea> 
     </div> 

      <button type="submit" class="btn2">Publish</button> 

    </form> 
    </div> 
@stop 

Это маршрут:

Route::get('/Newpost', array(
    'uses' => '[email protected]', 
    'as' => 'newPost' 
    )); 

Route::post('/CreatePost/{id}', array(
    'uses' => '[email protected]', 
    'as' => 'createPost' 
    )); 

and the controller 

public function createPost($id) 
    { 
     $users = User::findOrFail($id); 

     $post = array(
      'title' => Input::get('title'), 
      'content' => Input::get('content') 
      ); 
     $posts = new Post($post); 
     $user->post()->save($post); 

     dd($post); 
    } 

и модель пользователя, где я предполагаю, что вызывает ошибку.

<?php 

use Illuminate\Auth\UserTrait; 
use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableTrait; 
use Illuminate\Auth\Reminders\RemindableInterface; 

class User extends Eloquent implements UserInterface, RemindableInterface { 

    use UserTrait, RemindableTrait; 


    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'users'; 


    protected $fillable = array('email', 'password'); 

    /** 
    * The attributes excluded from the model's JSON form. 
    * 
    * @var array 
    */ 
    protected $hidden = array('password', 'remember_token'); 


    public function getRememberToken() 
    { 
     return $this->remember_token; 
    } 


    public function setRememberToken($value) 
    { 
     $this->remember_token = $value; 
    } 


    public function getRememberTokenName() 
    { 
     return 'remember_token'; 
    } 

    public function Post() 
    { 
     return $this->hasMany('Post', 'user_id'); 
    } 

} 

Может кто-нибудь объяснить мне, почему я получаю эту ошибку? Thanks

+1

Возможно, вы захотите добавить ярлык laravel к вашему вопросу –

+0

Какая ошибка вы получаете? – ntzm

ответ

1

Эта ошибка вызвана тем, что findOrFail ничего не найдено. Таким образом, он не работает. Если ваш маршрут зависит от идентификатора пользователя. На самом деле вы должны передать его при создании формы:

<form action="{{URL::route('createPost', Auth::id())}}" method="post" autocomplete="off"> 

(Auth::id() извлекает идентификатор текущего вошедшего в систему пользователя)

Однако вместо этого, я предлагаю вам удалить идентификатор пользователя из createPost маршрута и работать с текущим пользователем непосредственно в контроллере:

Route::post('/CreatePost', array(
    'uses' => '[email protected]', 
    'as' => 'createPost' 
)); 

и потом:

public function createPost() 
{ 
    $user = Auth::user(); 

    $post = array(
     'title' => Input::get('title'), 
     'content' => Input::get('content') 
     ); 
    $posts = new Post($post); 
    $user->post()->save($post); 

    dd($post); 
} 
+0

еще одна вещь! как я могу защитить маршруты от неавторизованных пользователей? – newbie

+0

http://laravel.com/docs/4.2/security#protecting-routes – lukasgeiter

+0

Как я могу просмотреть содержимое выбранных пользователем сообщений на странице diff? Я начал его здесь, я не знаю, что дальше? или как отправить идентификатор сообщения на другую страницу – newbie

Смежные вопросы