创建于2017年5月1日
phpmyadmin——轻松访问数据库
phpmyadmin 在 XAMPP 中是以 Apache 的虚拟主机 (Virtual Host) 形式存在的,属于单独的区块,不受修改 DocumentRoot 的影响。所以,即使你修改了Apache的根目录,仍可以通过localhost/phpmyadmin正常访问。
如果访问数据表总是出现warning,可能的是因为phpmyadmin的执行用户pma权限不够,可以在[数据库->账户->pma->修改权限]勾选所有权限并执行即可。或者查看phpmyadmin/config.inc.php里的密码等是否配置正确。
namespace与自定义类库
创建自己的功能类的一大好处是减轻Controller的压力,压缩Controller的代码量,并实现代码复用。当然也可以写功能性API。
步骤:
#1 建立一个文件夹App/Libraries/Classes.#2 在该文件夹下创建一个类 ClassA.php
头部写 namespace LibrariesClassesClassA; //设定命名空间
#3 引入自定义类库
在 composer.json 中:
“autoload”: {
“classmap”: [
“database”,
“app/Libraries/Classes” // 添加这行(即类库的路径)
},
#4 控制台执行 composer dump-autoload 更新自动加载。
#5 引用的地方写
use LibrariesClassesClassA;
就可以使用该类了!!!
Eloquent模型
定义了两套访问字段的方法,即对象形式和数组形式。假设$books是一个查询结果,对应的数据表里面有一个字段name,则:
$book->name==$book[‘name’];
另外,模型方法pluck、select 针对的是表中的所有数据,如果你想取出符合条件的部分字段值,应该这样操作:Book::select(‘name’,’author’,’img_url’)->findOrFail($id);
Route
Route::resource(‘items’, ‘ItemController’, [‘except’ => [‘create’, ‘edit’]]);//resource排除掉create和edit操作
//假设该路由只包含一个参数id,则route(‘books.show’,[‘id’=>8])==route(‘books.show’,8)==route(‘books.show’,[8]);
route(‘books.show’,[8,’action’=>”delete”])将解释成 ……books/8/show?action=delete,且可传多个get参数
AppEventsEvent
在5.4的版本中已不再可用!
use AppEventsEvent;
in the EraRequestWasMade
class is not necessary since they share the same namespace.
可用use AppEventsEraRequestWasMade;代替
Route
路由分配参数时是从左到右依次分配的,并不是根据名字匹配。
比如:
Route::get(‘posts/{post}/comments/{comment}’,
function ($postId, $commentId) {//函数第一个形参(postId)对应路由第一个参数…
//访问…/posts/1/comments/1
//postId=1,commentId=1
});
但推荐采用相同的名字
Little Tips
- laravel中return会自动将数据转化为json字符串。
- .blade.php中的{{ }}、{!! !!}可放在任何位置,包括js语句中,它们会被服务器php-fpm预解析生成对应的值,然后返回给浏览器处理
- 判断ajax请求
if($request->ajax()){
//Request $request
}else{
//
}
- Model::query()->find($id)===Model::find($id)
- compact(‘a’)与compact(‘ a’)完全不是一回事,后者多了一个空格,访问{{ $a }}将会报错。
- 可选的路由参数
Route::get(‘user/{name?}’, function($name = null)
{
return $name;
});
- 若数据表的id是自增的,重新设定一行记录的id值后,数据记录会自动排序.这样,交换两行记录岂不是变得很容易了,不是吗?即只需对id重新排序即可(另外,id=0是可用的!)。
- ajax 请求时不能有任何echo输出,否则会报parsererror错误
- 良好的ajax纠错代码:
error : function(XMLHttpRequest, textStatus, errorThrown){
alert("failed");
console.log(XMLHttpRequest.status);//200 客户端请求已成功
console.log(XMLHttpRequest.readyState);//4 响应内容解析完成,可以在客户端调用了
console.log(textStatus);//parsererror 响应数据格式错误
}
Blade模板
- 使用@each 子视图不能获得父视图的变量,相对的@include则可以