2018年9月

这是文档里说的:

Deleting An Existing Model By Key
In the example above, we are retrieving the model from the database before calling the delete method. However, if you know the primary key of the model, you may delete the model without retrieving it. To do so, call the destroy method:

  App\Flight::destroy(1);
  App\Flight::destroy([1, 2, 3]);
  App\Flight::destroy(1, 2, 3);

那么,这个destroy的返回值是什么呢?怎样判断是否删除成功了呢?

- 阅读剩余部分 -

根据rfc7231

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

简而言之,就是HTTP 1.1DELETE这个方法的request body的格式是没有定义的,因此会导致很多框架不会去实现它。

Laravel也一样,如果你想类似POST那样,在body中给一些参数,无论怎么玩,这个Request $request都是null

只有一个办法传参数,就是使用route parameter,类似这样:

DELETE /user/{user_id} 

折腾了十多分钟才研究明白这个事。

如果要让url上带参数,直接这样写:

$api->get('pic/{pic_id}', 'App\Controllers\PicController@getone')
            ->where('pic_id', '[a-zA-Z0-9]{8}');

这里,花括号里是参数,英文是route parameter,后面的where是用正则表达式来匹配参数,可以和其他url区别开。比如:

- 阅读剩余部分 -

大家在用git的时候可能会出现两种情况:

  • 在初始化git仓库的时候没有创建.gitignore文件
  • 中间提交或生成了某个文件(比如log),但忘了加入到.gitignore

这二种情况都会导致把不必要、不想要的文件也都commit到repo里了。
然而,这些文件已经被提交了, 这时候再创建.gitignore文件,或者把文件添加到.gitignore文件, 尝试着去忽略这些文件时,会发现ignore的规则对那些已经被commit(track)的文件无效,这些不想要的文件仍然在仓库里。

解决方案是:

- 阅读剩余部分 -

就是说,access_log和其他任何log,不仅路径要对,也要存在对应的目录和log文件,否则不报错,也不对。

我最烦这种不报错也work的情况。