当前位置: 首页 > 知识库问答 >
问题:

Laravel 4雄辩的“hasMany”:如何设置默认查找值而不是主键

郎曾笑
2023-03-14

我想检索页面中post_id(post1)下的所有评论:

//localhost/posts/post1/ 

表注释

id:int[primary],  comment:varchar,  post_id:varchar, comment_id:varchar
1                 this is a comment post_1           comment_1

桌柱

id:int[primary], post_title:varchar, post_id:varchar
1                this is post title  post_1

模型comment.php

public function post()
{
    return $This->belongsTo('Post');

}

模型post.php

public function comments()
    {
        return $this->hasMany('Comment');
    }

控制器postsController。php

 public function show($id)
    {
       $comments = Post::where('post_id','=',$id)->first()
                   ->comments()->where('post_id','=',$id)->get();

    }

当我访问//localhost/posts/post1/时,不会显示任何相关注释。SQL的运行方式如下:

select * from `posts` where `post_id` = 'post1' limit 1
select * from `comments` where `comments`.`post_id` = '1' and `post_id` = 'post1'

如何删除'post_id='1"以检索相应的注释?

共有1个答案

仰城
2023-03-14

在posts表中,id列应该命名为id,而不是post_id,因为这是laravel所期望的。在您雄辩的模型中,可以将主键设置为id以外的其他值,但最好使用id并遵循标准。请参阅此处的文档http://four.laravel.com/docs/eloquent.一旦您将id列命名为id,您就可以通过post::find($id)获取单个post

 类似资料:
  • 问题内容: 我的UIPickerView有问题。我在欧盟AP和NA中有3个值。当我启动该应用程序时,似乎选择了EU,但是当我做出选择时,我只会返回,现在当我触摸UIPickerView时,EU值被选中,然后从NSLog中返回。 我的问题是: 当用户仅启动应用程序并且什么都不触摸时,如何定义默认值(不仅是标签),该值将被选中。 编辑: 这是我的代码来获取所选项目: 问题答案: TL:DR版本: 您没

  • 问题内容: 我需要在活动开始时为ListPreference设置默认值。我试过了,但它使列表的firts条目成为默认条目。我需要它,因为我必须检查一个条件并将满足该条件的值设置为默认值,因此我认为无法从xml文件(带有)中完成此操作 例如,假设我在arrays.xml中具有以下值数组: 在PreferenceScreen xml中: 在活动中,我想做这样的事情: 但这是行不通的,因为它将默认设置为

  • 本文向大家介绍如何设置MySQL默认值NONE?,包括了如何设置MySQL默认值NONE?的使用技巧和注意事项,需要的朋友参考一下 要在MySQL中设置默认值,您需要使用DEFAULT关键字。让我们首先创建一个表- 我们为插入时未输入的值设置了DEFAULT以上。现在,让我们使用insert命令在表中插入一些记录。我们尚未在此处为某些行插入值。默认设置在那里- 使用select语句显示表中的所有记

  • 问题内容: 使用jersey jersey.java.net当URI中没有接受标头或.xml后缀时,如何将JSON设置为默认序列化而不是XML? 问题答案: 您可以在@Produces批注中为每种媒体类型分配质量索引。如果可以同时允许XML和JSON,则可以执行以下操作以使Jersey偏爱JSON:

  • 我有一个生成物料清单(BOM)的项目。当我执行gradle build时,它生成一个空jar,只包含一个META-INF文件夹。 但是,我可以将pom(BOM)正确地发布到Nexus,同时还会产生上传空罐子的副作用。 根据 maven 插件文档 https://docs.gradle.org/current/userguide/maven_plugin.html 我们应该能够设置打包: 打包归档任

  • 问题内容: 尝试使用WTForms设置SelectField的默认值时,我像这样将值传递给“默认”参数。 我也尝试了以下方法。 都不将默认选定字段设置为“ Def”。这适用于其他类型的字段,例如TextField。如何设置SelectField的默认值? 问题答案: 你发布的第一种方法是正确的,并且对我有用。唯一无法解释的原因可能是你正在运行旧版本的WTForms,它在1.0.1上对我有效