我需要在PostgreSQL表中存储一些JSON数据,以将其用作动态路由生成器。迁移很简单:
Schema::create($this->tablename, function (Blueprint $table)
{
$table->increments('id');
$table->string("uri", 123);
$table->json("middleware")->nullable();
$table->string("as", 123)->nullable();
}
我以这种方式存储数据:
$a = new Route();
$a->uri = "/test1";
$a->middleware=json_encode(["auth","web"]);
$a->as = "TestController@test";
$a->save();
所以我想说我需要过滤所有拥有auth
中间件的路由。我该怎么办?
当我尝试
时Route::where('middleware', 'AS', 'auth')->get();
......我收到错误。是否有可能像那样使用它?
我使用 Laravel 5.2 和 PostgreSQL 9.3.12 。
如果您使用的是 PostgreSQL 9.4 或更高版本,并且Laravel框架的版本大于 5.2.29 ,则可以使用以下语法:
Route::where('middleware','@>','"auth"')->get();
答案 0 :(得分:1)
更改whereRaw的位置并查询json字段
form
或者
function form(name, callback) {
return server.getForm(name).then(function(response) {
return callback(response.formFields);
}).then(function (data) {
return server.submitForm(name, data);
}).catch(function(e) {
console.error(e); // or display it in the form, or whatever
});
}
function main() {
return form('example', function(fields) {
return new Promise(function(resolve, reject) {
var dialog = ui.formDialog(fields);
dialog.addButton('submit', resolve);
dialog.show();
});
});
}