Laravel-Administrator

Laravel-Administrator 是个快速建立 laravel 后台的插件,如果表结构和业务逻辑并不复杂,极度推荐使用。因为如果熟练之后,确实能够迅速地搭建一个管理后台。

但我最终放弃使用它,并使用原生的 dataTables 做了个界面相对简陋,但功能完备的后台。

原因之一是 Administrator 在使用的过程中让我感觉不自由。尤其在需要检索的时候。它并不支持关联查询(至少目前版本不支持)。

不自由的表现还在于表格列的排序上。(代码链接)。这代码在整个接口的实现逻辑中合情合理,但无法忍受。

我尝试用 Extension 的方式去解决这些我必须要解决的问题,但在 Extension 越来越多黑科技代码的情况下,终于放弃。

明显简单的 SQL 就能解决的问题。

总而言之,Administrator 的想法很棒。但尚未成熟。不过相信即便成熟了,学习成本会相当高。

所以我放弃。

当然,以上观点偏主观。




————————- 2015-10-28 更新 (如你所见,是因为我过15天试用期了。)———————-


无意间发现了如何破解 DataTables 的 Editor(仅测试v1.5.1,其余版本没看)。
备忘一下。
dataTables.editor.min.js 46行,把括号里的字符串去掉,以及注释掉上面一长串的判断到期后弹框的代码。
由于 editor 并不开源,所以代码下载后每份都不一样的,大约长这样:

/*!
 * File:        dataTables.editor.min.js
 * Version:     1.5.1
 * Author:      SpryMedia (www.sprymedia.co.uk)
 * Info:        http://editor.datatables.net
 * 
 * Copyright 2012-2015 SpryMedia, all rights reserved.
 * License: DataTables Editor - http://editor.datatables.net/license
 */
(function(){

// Please note that this message is for information only, it does not effect the
// running of the Editor script below, which will stop executing after the
// expiry date. For documentation, purchasing options and more information about
// Editor, please see https://editor.datatables.net .
/** var remaining = Math.ceil(
	(new Date( 1446508800 * 1000 ).getTime() - new Date().getTime()) / (1000*60*60*24)
);

if ( remaining <= 0 ) {
	alert(
		'Thank you for trying DataTables Editor\n\n'+
		'Your trial has now expired. To purchase a license '+
		'for Editor, please see https://editor.datatables.net/purchase'
	);
	throw 'Editor - Trial expired';
}
else if ( remaining <= 7 ) {
	console.log(
		'DataTables Editor trial info - '+remaining+
		' day'+(remaining===1 ? '' : 's')+' remaining'
	);
} **/  // 注释掉或者删掉,随意

})();
var A9u={'g9i':(function(p9i){return (function(w9i,c9i){return (function(l9i){return {U9i:l9i}
;}
)(function(S9i){var R9i,L9i=0;for(var n9i=w9i;L9i<S9i["length"];L9i++){var W9i=c9i(S9i,L9i);R9i=L9i===0?W9i:R9i^W9i;}
return R9i?n9i:!n9i;}
);}
)((function(x9i,O9i,a9i,h9i){var A9i=32;return x9i(p9i,A9i)-h9i(O9i,a9i)>A9i;}
)(parseInt,Date,(function(O9i){return (''+O9i)["substring"](1,(O9i+'')["length"]-1);}
)('_getTime2'),function(O9i,a9i){return new O9i()[a9i]();}
),function(S9i,L9i){var v9i=parseInt(S9i["charAt"](L9i),16)["toString"](2);return v9i["charAt"](v9i["length"]-1);}
);}
)()}  // 46 行
……

仅供参考。