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

主键不同于laravel搜索的默认id

通学真
2023-03-14

我在表中添加了一个自定义主键,现在Laravel根本找不到结果。出现错误,无法找到该页。

#######################################################################################

没有模型[App\usersinformation]的查询结果。

控制器 --------------------

public function show(usersinformation $usersinformation)
{
    //
  //  $users =  $user = usersinformation::where('user-id','=',$usersinformation) -> first();
    
        return view('usersinformation.show');

}

模型-------------------

class usersinformation extends Model
{
    //

    public $table = "usersinformation";
    public $incrementing = false;
    
    protected $fillable = [

        'fname','lname', 'user-picture', 'phone-number', 'user-id', 'place-id'

    ];
    protected $primaryKey = 'user-info-id';

    public function users(){
        $this -> belongsTo('App\users');
    }

route---web.php

Route::post('/show','App\Http\Controllers\usersinformationController@show');

仍然面临相同的问题,如果我对主键进行注释,则在模型中添加自定义主键时,它将给出在表中找不到id字段的错误,并给出错误页面未找到。

共有1个答案

邴星洲
2023-03-14

您键入的是usersinformation$usersinformation,因此它试图查找您传入的ID的记录。在下一行中,您试图将id传递给用户id,因此我猜您实际上是将用户id传递给路由,而不是用户信息行的id。如果是这种情况,那么您需要更改类型提示,以便它在进入函数之前不会尝试查找记录。

public function show($user_id)
{
  $user_information = usersinformation::where('user-id','=',$user_id) -> first();
    
  return view('usersinformation.show', ['userinformation' => $user_information]);

}

primaryKey行很好,应该可以使用,但要知道,表名和列名中的破折号是不受欢迎的,因为它会导致各种混乱。下划线更好。有关更多信息,请参阅此链接。

 类似资料:
  • 默认搜索 (默认搜索,将显示在前台搜索框,前台点击时直接作为关键词进行搜索。)

  • 我有一个spring实体类,如下所示。 具有相应的getter和setter。 我已经为这个表访问编写了一个Spring Data JPA存储库,如下所示。 但我想使用value读取所有记录。但不是主键。所以我想知道如何实现这一点。 有人能帮我一下吗。

  • 问题内容: SQL Server2005。我有一个带有ColumnA位,ColumnB int的表 我可以添加默认值,以便如果为1则为15,如果为0则为0? 我知道我可以用扳机做到这一点,但我的老板对扳机存有偏见(他需要扳机敏感性培训)。 问题答案: 如果您的ColumnB只能为15或零,则可以使其成为基于ColumnA的计算列。这是添加新的计算列的代码:

  • 我想检索页面中post_id(post1)下的所有评论: 表注释 桌柱 模型comment.php 模型post.php 控制器postsController。php 当我访问//localhost/posts/post1/时,不会显示任何相关注释。SQL的运行方式如下: 如何删除='1"以检索相应的注释?

  • 我们用露西做了一些测试。Net 3.0.3在搜索和插入方面。 在测试中,我们使用了基于真实英语单词的关键词分析器和文本生成器。 当索引点击大约800万个文档,同时搜索1000个随机句子时,搜索需要25分钟才能完成。(默认排序) 如果我们将搜索更改为文档排序: 搜索只需几秒钟即可完成。 有什么好处?默认排序是否基于相关性?为什么会产生如此巨大的影响? 此外,如果我们从int减少命中视频数。MaxVa

  • 我已经在我的angularjs应用程序中实现了默认搜索,代码如下: 我在这里面临的问题是,假设有人碰巧触发了某个关键字,而这些关键字在被重复的记录中并不存在。我想要一条消息,说“什么也没找到”或者别的什么。 我如何实现这个逻辑?我在这里看了不同的文章和几个问题,找不到这方面的任何东西。我如何查看搜索的术语的长度是否为零,以便我可以ng-如果那个东西并显示消息?谢谢!