根据手册:http : //carbon.nesbot.com/docs/#api-humandiff
得到一个 ago
将过去的值与现在的默认值进行比较时
但是无论我做什么,我都无法 ago
return $datetime->diffForHumans(Carbon::now())
结果到before,而
return Carbon::now()->diffForHumans($datetime);
结果after,
但是正如您可以清楚地看到,我上面的两个代码段都比较了past($ datetime)和现在的默认值(Carbon :: now()),所以我不明白为什么我找不到以前?希望有人能帮忙。我只需要回声ago。谢谢!
我只是想知道是否有更好的方法来解决这个问题
因此,假设您有jump to使用锚标记的链接:
www.example.com/#about
打开该链接将使浏览器自动滚动到带有以下内容的部分
<div id="about"></div>
现在,我想捕获此scroll事件,以便我可以添加更多offset有关浏览器应使用多少滚动的信息。
这样做的原因是因为我有一个fixed消耗120px浏览器的导航菜单。
问候,
我试图从实用程序/帮助程序类中为静态方法添加别名,文档没有提供有关静态方法的任何信息,并且使用那里定义的方法不适用于静态方法(看起来是这样)。
假设我有这门课:
namespace App\Helpers;
class HTTP {
public static function extract_path_from_url( string $url ) {
$parsed_url = wp_parse_url( $url );
if ( ! isset( $parsed_url['path'] ) ) {
return false;
}
return (string) $parsed_url['path'];
}
}
Run Code Online (Sandbox Code Playgroud)
然后尝试在不同的文件上使用它:
<?php
echo \App\Helpers\HTTP::extract_path_from_url( 'http://example.com/test' );
Run Code Online (Sandbox Code Playgroud)
上面那个有效
但试图给它起别名:
<?php
use \App\Helpers\HTTP\extract_path_from_url as extract_path;
echo extract_path( 'http://example.com/test' );
Run Code Online (Sandbox Code Playgroud)
会输出
Fatal error: Uncaught Error: Call to undefined function App\Helpers\HTTP\extract_path_from_url()
Run Code Online (Sandbox Code Playgroud)
甚至:
<?php
use \App\Helpers\HTTP::extract_path_from_url as extract_path;
echo extract_path( 'http://example.com/test' );
Run Code Online (Sandbox Code Playgroud)
显示这个奇怪的错误:
Parse error: syntax error, …Run Code Online (Sandbox Code Playgroud) 因此,我接触到越来越多的现实生活应用程序,其中:
SELECT * FROM table已经太重了,导致
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 47 bytes) in。
我目前正在做的是将这些mySQL行拆分为batches,设置一个变量$perPage,然后将一个$_GET['page']变量传递给页面,该链接为:process.php?page=1
我认为这是“好”。但是有时候,我们想要完全自动化。所以我设置了$nextPage = (int) $_GET['page'] + 1,然后将页面重定向到处理这些mySQL行之后的迭代
header("Location: process.php?p="$nextPage)
现在,这会给您一些问题:
process.php将启用cURL 并启用跟随重定向的php脚本。这是我目前的处理方式,但有时我认为我需要编写更多代码才能使其正常工作有点令人沮丧。有谁知道如何更优雅地处理这些问题?
我试图在我的查询构建器中避免DRY,特别是在链中添加其他方法.
例如,这最初是我的查询构建器:
$products = $app->myShop->realProducts()
->where($query)
->skip($skip)->take($take)
->orderBy($sortKey, $sortOrder)
->get();
Run Code Online (Sandbox Code Playgroud)
然后,如果用户使用了一些过滤器,我需要将一个方法(特别是a whereHas())附加到查询构建器
$products = $app->myShop->realProducts()
->where($query)
->whereHas('colour', function ($q) use ($find) {
$q->where('colour_slug', $find);
})
->skip($skip)->take($take)
->orderBy($sortKey, $sortOrder)
->get();
Run Code Online (Sandbox Code Playgroud)
我觉得要实现这个结果"丑陋",我必须不断重复那些构建器查询:
if ($user_filtered_this_page == TRUE) {
$products = $app->myShop->realProducts()->where($query)
->whereHas('colour', function ($q) use ($find) {
$q->where('colour_slug', $find);
})
->skip($skip)->take($take)
->orderBy($sortKey, $sortOrder)
->get();
} else {
$products = $app->myShop->realProducts()->where($query)
->skip($skip)->take($take)
->orderBy($sortKey, $sortOrder)
->get();
}
Run Code Online (Sandbox Code Playgroud)
是否有更聪明或更优雅的方式动态和有条件地将whereHas()方法附加到链?
希望有人可以提供帮助.谢谢!