当我获取数据时,我正在使用laravel中的资源向我询问id,但是我的表中的主键是user_menu_id如何更改使用资源路径
路线
Route::resource('/UserMenuController', 'UserMenuController');
错误
'where子句'中的未知列'user_menus.id'(SQL:select * from
user_menus
user_menus
。id
= 1限制1)
<?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'];
}
答案 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';
}