laravel资源在获取数据时更改id

时间:2018-01-26 11:15:29

标签: php laravel laravel-5 php-5.3

当我获取数据时,我正在使用laravel中的资源向我询问id,但是我的表中的主键是user_menu_id如何更改使用资源路径

路线

Route::resource('/UserMenuController', 'UserMenuController');

错误

  

'where子句'中的未知列'user_menus.id'(SQL:select * from       user_menus user_menusid = 1限制1)

enter image description here 模特

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class user_menu extends Model
{

 protected $fillable = ['menu_parent_id', 'menu_title', 'menu_class', 
'menu_id', 'menu_link', 'created_by', 'updated_by', 'created_at', 'updated_at'];
}

4 个答案:

答案 0 :(得分:1)

错误表示没有名为listeners: { change: function (combo, countryId) { var alert = new Ext.util.DelayedTask(function () { Ext.Msg.alert('Info!', 'Please select a country'); }); var cityStore = Ext.getStore('cityCombo'); cityStore.getProxy().setUrl(MyApp.Globals.getUrl() + '/city/view/search?query=countryid:'+ countryId); if (typeof countryId === 'number') { cityStore.load(); } else { alert.delay(8000); } } } 的表。在模型中设置实际表名user_menus属性:

$table

或者您可以按照我的回购协议中的说明follow Laravel naming conventions,然后将表重命名为protected $table = 'user_menu'; user_menus类的复数形式。)

您说主键也不是标准键,因此将其更改为user_menu

$primaryKey

答案 1 :(得分:1)

在模型类中定义主键,你将是金色的。

您遇到错误的原因是Laravel始终假设主键为id。阅读错误日志,您会注意到:

1054 Unknown column 'user_menus.id' - 您可以立即知道它试图找到一个不存在的列。

修复方法是将$primaryKey分配给您的模型类,例如:

protected $primaryKey = 'user_menu_id';

答案 2 :(得分:1)

根据this article,您需要覆盖$primaryKey属性:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class user_menu extends Model
{
    protected $fillable = [
        'menu_parent_id', 'menu_title', 'menu_class', 
        'menu_id', 'menu_link', 'created_by', 'updated_by', 'created_at', 'updated_at'
    ];

    protected $primaryKey = 'user_menu_id';
}

答案 3 :(得分:-1)

Eloquent 将假设每个表都有一个名为id的主键列。您可以定义受保护的$primaryKey属性以覆盖此约定。

class user_menu extends Model
{

    protected $primaryKey = 'user_menu_id';
}