我收到此错误消息,“该模型没有查询结果[App \ dummy]。”我相信问题出在控制器中。提交表单时,应该在注释控制器中触发该功能。这个控制器是新的,我相信错误就在这里。那是它停止工作的时候。这是commentController文件:
<?php
namespace App\Http\Controllers;
use App\Dummy;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; //this one is for sql builders
use App\Comments;
use Illuminate\Http\RedirectResponse;
use DateTime; //to create a new date object you need to include this namespace
class commentController extends Controller
{
public function store(Dummy $post){
$date = new DateTime();
$timestamp = $date->getTimestamp();
$id = $post->id;
$post->addComment(request('body'));
return view('post', compact('post', 'timestamp', 'id'));
}
}
我尝试制作App \ Dummy小写,因此它是App \ dummy但仍然无效。它仍然给我错误。
这是我的假模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class dummy extends Model
{
protected $guarded = [];
public function comments(){
return $this->hasMany(Comments::class, 'post_id');
}
public function addComment($body){
$this->comments()->create(compact('body'));
}
}
答案 0 :(得分:0)
您的错误是,您的班级被称为dummy
,请您将其用作Dummy
,因此将其(文件和班级)重命名为Dummy
。
此class dummy extends Model
class Dummy extends Model
。{/ p>
请记住,您的文件也应该被调用Dummy.php
,而不是dummy.php
答案 1 :(得分:0)
将您的模型类名称更改为exports.getTotalPrice = functions.https.onRequest((req, res) => {
admin.database().ref('carresult').once('value').then(function(snapshot) {
var totalPrice = snapshot.val().price;
res.status(200).send(String(totalPrice)); // <= ADDED String()
});
});
,将文件名称更改为Dummy
。
这里的主要问题是路线模型绑定。当您尝试添加评论时,Dummy.php
对象无法根据您的路线得到解决。您的路线设置不正确或尝试将评论添加到不存在的帖子中。
基本上错误消息$post
是因为路由模型绑定为您执行此代码而发生的。
No query results for the model
尝试更改此
$post = Dummy::findOrFail($id);
答案 2 :(得分:0)
问题在于表格。表单中的action属性是这样的:
<form class="col s12" action={{ url('/post/$id/comments') }} method="post">
我认为这会获得id,因为我将id压缩为变量$ id。但后来我检查了网址并注意到不是数字而是实际的单词$ id。所以,这是解决方案:
<form class="col s12" action={{ url('/post/' . $post->id . '/comments') }} method="post">
只是让你们知道,当它说“没有查询结果模型[App \ dummy]。”这意味着当我从具有这行代码的虚拟模型中使用此方法时:
public function comments(){
return $this->hasMany(Comments::class, 'post_id');
}
无法从假人桌中找到主键。因此无法从注释表中连接作为post_id的外键。因此,它无法将新评论提交给该独特博客文章的表格。这是向表格提交评论的最后一部分:
public function addComment($body, $name){
$this->comments()->create(compact('body', 'name'));
}
顺便说一下,comments()是我之前展示的方法。
<强>结论强>
它几乎停止在web.php文件(路由文件)中工作,因为它没有获取id。由于我在动作属性中以我之前解释过的形式犯了错误。