没有模型 [User] 的查询结果 | laravel
No query results for model [User] | laravel
我是 Laravel 的新手,所以我还不熟悉它返回的错误,希望有人能帮助我。
所以我创建了一个带有注册表单和登录表单的简单应用程序,注册用户可以 post he/she 想要的任何内容,但我收到此错误
这是用户可以 post:
@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' => 'LoginUsersController@newPost',
'as' => 'newPost'
));
Route::post('/CreatePost/{id}', array(
'uses' => 'LoginUsersController@createPost',
'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');
}
}
有人可以向我解释为什么会出现此错误吗?谢谢
这个错误是因为findOrFail
找不到任何东西。所以它 失败了 。
如果您的路线取决于用户 ID。您实际上必须在创建表单时传递它:
<form action="{{URL::route('createPost', Auth::id())}}" method="post" autocomplete="off">
(Auth::id()
获取当前登录用户的id)
然而,我建议您从 createPost
路由中删除用户 ID,并直接在控制器中使用当前登录的用户:
Route::post('/CreatePost', array(
'uses' => 'LoginUsersController@createPost',
'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);
}
我是 Laravel 的新手,所以我还不熟悉它返回的错误,希望有人能帮助我。
所以我创建了一个带有注册表单和登录表单的简单应用程序,注册用户可以 post he/she 想要的任何内容,但我收到此错误
这是用户可以 post:
@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' => 'LoginUsersController@newPost',
'as' => 'newPost'
));
Route::post('/CreatePost/{id}', array(
'uses' => 'LoginUsersController@createPost',
'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');
}
}
有人可以向我解释为什么会出现此错误吗?谢谢
这个错误是因为findOrFail
找不到任何东西。所以它 失败了 。
如果您的路线取决于用户 ID。您实际上必须在创建表单时传递它:
<form action="{{URL::route('createPost', Auth::id())}}" method="post" autocomplete="off">
(Auth::id()
获取当前登录用户的id)
然而,我建议您从 createPost
路由中删除用户 ID,并直接在控制器中使用当前登录的用户:
Route::post('/CreatePost', array(
'uses' => 'LoginUsersController@createPost',
'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);
}