findOrFail Laravel 5 特定领域的功能

Posted

技术标签:

【中文标题】findOrFail Laravel 5 特定领域的功能【英文标题】:findOrFail Laravel 5 function for specific field 【发布时间】:2015-09-02 12:11:36 【问题描述】:

这是我的代码:

$get_all = Geo_Postal_us::findOrFail($postal);

通过这个查询,Laravel 尝试在表中查找 id 字段。

我没有id 字段。我使用postal 列作为主键。

如何设置函数在postal 列中查找值而不是从id 列中搜索?

谢谢,

【问题讨论】:

【参考方案1】:

您可以使用以下方法创建您正在寻找的行为:

Geo_Postal_us::where('postal', $postal)->firstOrFail();

【讨论】:

这个问题,tnx!但是现在,当我进行上传时,直到有 id,工作正常,现在萌芽,再次出现错误,Laravel 仍在尝试查找 ID 归档。这是代码:$email_update = Geo_Postal_us::where('postal', $postal)->firstOrFail(); 要使用不同的列作为主键,请将以下属性添加到 Geo_Postal_us 模型protected $primaryKey = 'postal';【参考方案2】:

如果你使用 find(),Laravel 默认会在表中搜索“id”列。为了避免在这里和以后遇到错误,你应该总是告诉 laravel 你确实为你的主要字段取了另一个名字。

为此,只需在您的 Geo_Postal_us 中进行如下编辑:

class Geo_Postal_us extends Model

      protected $primaryKey = 'postal'; //tell laravel to use 'postal' as primary key field
...
...

我在 Voyager 中遇到了这个问题,真的让我抓狂:)。

希望这有助于一些人在谷歌上搜索这个问题。

【讨论】:

以上是关于findOrFail Laravel 5 特定领域的功能的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.3:为博客创建 PostCommentsController

laravel5.5授权系统

数组到字符串转换 Laravel 5.2

Laravel - 通过自定义列查找或失败

用户从Laravel 5.2中的帐户删除后没有注销的原因

Laravel中使用模型对数据进行操作