【问题标题】:Laravel No query results for model [App\Topic] createLaravel 没有模型 [App\Topic] 创建的查询结果
【发布时间】:2017-06-21 16:40:51
【问题描述】:

我正在尝试获取用户能够创建主题的视图。我在我的项目中这样做了很多次,但从来没有出现过这个错误,因为所有其他的都工作得很好。

我收到错误 No query results for model [App\Topic] create。这是代码。

这是应该将用户带到视图的链接。

        <div class="col s12">
            <div class="card">
                <div class="card-content clearfix">
                    <a href="{{ route('createtopic', ['theme_id' => $theme->id]) }}" class="waves-effect waves-light btn blue-grey darken-4">New topic <i class="material-icons right">edit</i></a>
                </div>
            </div>
        </div>

这些是在这个问题中使用的路由。

Route::get('/theme/{theme_id}/topics/create', 'TopicsController@create')->name('createtopic');
Route::post('/theme/{theme_id}/topics/create', 'TopicsController@store')->name('savetopic');

Controller 方法创建。

dd('Hij is er ' . $id);

并且 store 方法是空的,该链接没有显示 DumpDie 方法,而是显示了错误。所以没有必要发布我试图显示的视图,因为那不是问题所在。提前致谢!

【问题讨论】:

  • 检查您是否在刀片文件中传递了正确的 id。在返回刀片的方法中执行 dd。
  • 我没有返回视图,因为那是 dd 所在的位置。问题不在于 create 方法,而在于其他地方。不知道哪里出了问题
  • 这意味着您的数据库中不存在具有此 ID 的行
  • 但是我什至没有尝试使用名称创建一行,我没有在任何地方定义它?这就是为什么我不知道。上面的所有代码都是与此相关的所有代码。 @Vikash 看看这个:imgur.com/a/Slw4i
  • 编辑问题并显示一些相关代码可能是控制器代码,这取决于,这样我就可以清楚地了解它

标签: php laravel laravel-5 laravel-5.2 laravel-5.1


【解决方案1】:

你需要了解路由和控制器方法是如何工作的

Route::get('/theme/{theme_id}/topics/create', 'TopicsController@create')->name('createtopic');

当您点击上述路线时,我的意思是例如您浏览器中的yourdomain/theme/1/topics/create,然后它将使用1 代替theme_id,它将转到您的create 方法@987654326 @ 将接受一个参数。

你的创建方法应该是这样的

public function create($id)
{
   dd($id);
}

这里你会得到 1 作为结果,因为你在你的 url 中传递了这个参数而不是 theme_id。

【讨论】:

  • 你没有得到问题。我和你刚刚在这里发布的东西完全相同,但它甚至没有进入 create 方法。它只是向我显示错误代码。我使用的代码没有任何问题,因为我在项目中多次使用它并且它工作正常。 URL 工作正常,这也不是问题。不知道问题出在哪里
  • 你在使用路由模式绑定吗?
  • 同时尝试通过所有四个 artisan 命令清除缓存,并通过运行php artisan clear-compiled 删除编译类。
猜你喜欢
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
相关资源
最近更新 更多