【发布时间】:2019-04-09 12:07:34
【问题描述】:
我目前正在关注 Laravel 基础教程视频,因为我之前尝试过另一个教程,但它没有详细解释 Laravel。
我现在进入第 9 集 (https://laracasts.com/series/laravel-5-fundamentals/episodes/9) 但是,一旦我进入控制器中的 show($id) 函数,我就会收到 findOrFail() 的错误,或者如果我只使用 find() 它根本不会查询并且返回任何东西。
除了将“文章”更改为“帖子”,因为我更喜欢命名。
我真的想在这一点上撞到墙上,因为我不知道为什么会发生这种情况。
我检查了我的所有语法,它似乎是有序的。索引中Article::all(); 的查询也会返回我的数据库表中的数据。
app/Http/Controllers/PostsController.php
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostsController extends Controller
{
public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}
public function show($id)
{
$post = Post::findOrFail($id);
return view('posts.show', compact('post'));
}
}
路由/web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'PagesController@index');
Route::get('contact', 'PagesController@contact');
Route::get('posts', 'PostsController@index');
Route::get('posts/{id}', 'PostsController@show');
app/Post.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = [
'title',
'body'
];
}
我使用 findOrFail() 时收到的错误
(2/2) NotFoundHttpException
No query results for model [App\Post] 1
in Handler.php line 131
谢谢,希望有人能看出我哪里出错了!
【问题讨论】:
-
你设置了post表的主键吗?
-
你能提供刀片文件代码在哪里显示链接?