laravel api 找不到controller_Laravel使用——技巧篇

创建于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则可以
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值