我正在使用PHP版本5.6.4开发Laravel 5.4。我的目标是使用PHP 7.1将项目升级到Laravel 5.7。
现在我的问题是:我必须升级到5.5> 5.6> 5.7,还是可以直接从5.4升级到5.7?
我执行一个ajax调用,该调用存储一些数据并在表中添加一行。在此行的末尾有一个删除按钮,因此您可以根据需要立即删除创建的行。
由于某些原因,当我单击删除按钮时,我将重定向到我用来从数据库中删除数据的ajax调用的deleteurl。当我重新加载页面并按删除按钮时,它可以正常工作。
有人知道为什么会这样吗?
要添加的行:
<tr>
<td>test</td>
<td>
<form class="deleteBuildingForm" method="POST" action="http://127.0.0.1:8000/buildingimage/42" accept-charset="UTF-8">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="EEV90wmDNLMd8hg9ilh6zdDAjVShXW9bfOCXdvml">
<button type="submit" class="btn btn-danger">
<i class="far fa-trash-alt"></i>
</button>
</form>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我的jQuery代码:
$('.deleteBuildingForm').on('submit', function(e) {
e.preventDefault();
axios.delete($(this).attr('action'), []).then(response => {
$(this).closest('tr').remove();
$('.successMessages').hide();
});
});
Run Code Online (Sandbox Code Playgroud) 如果我声明我的函数返回类型,我是否必须在php 7中创建docblock?
这样做就足够了,例如:
public function findByLogin(string $login): User
{
return User::where(User::COL_LOGIN, $login)->first();
}
Run Code Online (Sandbox Code Playgroud)
或者我应该这样做:
/**
* Find a user by its login.
*
* @param string $login
* @return User
*/
public function findByLogin(string $login): User
{
return User::where(User::COL_LOGIN, $login)->first();
}
Run Code Online (Sandbox Code Playgroud)
感觉像双重文档.
我正在使用 spatie/laravel-query-builder 来制作范围过滤器。在文档中我读到了这个:
您甚至可以通过将逗号分隔的列表传递给过滤器来将多个参数传递给作用域:
Run Code Online (Sandbox Code Playgroud)GET /events?filter[starts_between]=2018-01-01,2018-12-31
因此,我在模型中创建了一个范围过滤器,如下所示:
public function scopeStartsBetween(Builder $query, $dates): Builder
{
dd($dates);
return $query->whereBetween('created_at', array($dates[0], $dates[1]));
}
Run Code Online (Sandbox Code Playgroud)
我的请求如下所示:
http://127.0.0.1:8000/?filter[starts_between]=2018-10-15,2018-10-17
Run Code Online (Sandbox Code Playgroud)
其结果dd($dates)是这样的:
"2018-10-15"
Run Code Online (Sandbox Code Playgroud)
因此,多个参数的逗号分隔列表不起作用,或者我做错了什么?
我正在尝试查找今天创建的所有记录,并以 1 开始列functional_id。
我收到以下语法错误:
SQLSTATE[42000]:语法错误或访问冲突:1064 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,在第 1 行的“ WHEREfunctional_id LIKE“1%”附近使用正确的语法(SQL:select count(*) as aggregate from
image_requestswhere date(created_at) = 2019-01-24 00:00:00 和 WHEREfunctional_id LIKE "1%")
我雄辩的代码:
$counter = ImageRequest::whereDate('created_at', $date)->whereRaw('WHERE functional_id LIKE "1%"')->count();
Run Code Online (Sandbox Code Playgroud) 我在github上发现了这个非常受欢迎的软件包。
https://github.com/barryvdh/laravel-ide-helper
我已经在我从事过的多个项目中看到过这种用法,但是我不确定此软件包的确切好处是什么。如果我理解正确,它将在您项目的根目录中使用Laravel Framework的“克隆”生成一个文件。这应该有助于自动补全。
我在文档中没有看到任何清晰的示例。