我有一个在Nginx上运行的Laravel站点,它很好.
它有一个普通的文件夹结构,如:
/app
/public
/vendor
...
Run Code Online (Sandbox Code Playgroud)
该/public文件夹是Laravel index.php所在的位置.
我已经安装了WordPress,/public/blog因为我希望我的博客可见mywebsite.org/blog.
如果我将定义的永久链接设置/blog/wp-admin/options-permalink.php设置为"默认"(这意味着帖子的URL看起来像/blog/?p=123),则博客目前正常工作. 如果我更改永久链接设置/blog/%postname%/,我无法查看帖子(我得到一个Laravel 404页面).
我绝对希望我的博客文章有SEO友好的URL(非常永久链接).
我目前的Nginx配置是:
server {
#This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf and seemed to be necessary to get Laravel working.
server_name mysite.local;
# The location of our project's public directory.
root F:/code/mysite/public/;
# Point index to the Laravel front controller.
index index.php;
location / {
# URLs to attempt, including pretty ones.
try_files $uri $uri/ /index.php?$query_string;
} …Run Code Online (Sandbox Code Playgroud) 我在进行Subversion合并时经常遇到冲突,例如:
svn merge -r10347:HEAD ^/branches/header-and-navbar
Run Code Online (Sandbox Code Playgroud)
我知道--dry-run,我这样做是为了预览.
但是在真正运行它之后,如果我想为每个冲突选择"推迟",那么对于很多文件来说可能需要很长时间.
如何提前告诉Subversion不要问我每个文件?
这是谜语:
C:\code\trunk> svn merge --reintegrate http://svn.e.com/repos/branches/lih --accept postpone --dry-run
svn: E195016: Reintegrate can only be used if revisions 11430 through 12384 were previously merged from http://svn.e.com/repos/trunk to the reintegrate source, but this is not the case:
branches/lih
Missing ranges: /trunk:11902
Run Code Online (Sandbox Code Playgroud)
但是,如果我进入分支的目录并尝试合并该范围,则无需合并!
C:\code\branches\branch> svn merge -r 11901:11902 http://svn.e.com/repos/trunk --accept postpone --dry-run
C:\code\branches\branch>
Run Code Online (Sandbox Code Playgroud)
甚至svn merge -r 11898:11903没有显示任何合并.
现在我似乎无法将我的分支重新融入后备箱!请帮忙!
PS lih分支直到11906才创建.它从高速分支分支,从分支分支(高清已经合并回主干).
我正在为自己创建一个仪表板,帮助我跟踪我正在运行的Facebook广告.
我无法弄清楚的是:
如何为所有处于活动状态的广告检索一系列广告ID,或者在我没有采取进一步措施后可以很快恢复活动的广告?
换句话说,我希望我设置为"有效"并且存在于有效的广告和广告系列中的所有广告(因此这些广告现在正在播放)... 加上我认为的所有广告都是有效的,但是Facebook已经设置了另一个状态,例如Pending Review(并将很快回归Active).
我在下面有一些代码,但问题是它也偶然包含待定广告 - 一旦经过Facebook审核和批准 - 将处于非活动状态而非活动状态(因为我已经设置了这种方式).我不希望这类广告包含在我的报告中.
我的报告应该只向我展示一些我积极花钱或有可能在FB批准后立即花钱的报告.
我想我明白之间的差别configured_status,并effective_status在AbstractArchivableCrudObjectFields,但我不知道这是足以帮助我,因为我有很多设置为活动是内Adsets是无效的广告的,我不希望看到这些上市我的报告.
有什么建议?
public function getActiveAdIds() {
$key = 'activeAdIds';
$adIdsJson = Cache::get($key);
if ($adIdsJson) {
$adIds = json_decode($adIdsJson);
} else {
$adsResponse = $this->getAdsByStatus([ArchivableCrudObjectEffectiveStatuses::ACTIVE, ArchivableCrudObjectEffectiveStatuses::PENDING_REVIEW]);
$ads = $adsResponse->data;
$adIds = [];
foreach ($ads as $ad) {
$adIds[] = $ad->id;
}
$adIdsJson = json_encode($adIds);
Cache::put($key, $adIdsJson, 1);
}
return $adIds;
}
public function getAdsByStatus($statuses) {
$params = …Run Code Online (Sandbox Code Playgroud) php facebook-ads-api facebook-php-sdk facebook-insights facebook-marketing-api
我知道php artisan env在命令行上运行会向我显示"当前应用程序环境"(例如"生产").
但我想要的是能够从命令行看到类似env('SESSION_DRIVER')或config('session.driver')直接的值.
那可能吗?
(我在文档中找不到提示.)
我有最新版本的 MySQL Workbench。我在虚拟 Ubuntu 机器中有 MySQL,并尝试通过 SSH 连接。
MySQL Workbench 不断崩溃,但没有显示任何警告或错误。
我有一个 Next.js 项目,我使用 Prisma 从 Postgresql 读取数据。
我有这样的代码:
const rows = await prisma.receipts.findMany({
where: {
action_receipts: {
// https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting#filter-on-relations
signer_account_id: {
equals: accountName,
},
},
},
orderBy: {
included_in_block_timestamp: 'desc',
},
take: 2,
});
Run Code Online (Sandbox Code Playgroud)
我经常收到如下错误:
error: PrismaClientUnknownRequestError:
Invalid `prisma.receipts.findMany()` invocation:
Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Db, cause: Some(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState("42P05"), message: "prepared statement \"s0\" already exists", detail: None, hint: None, position: None, where_: None, schema: None, table: …Run Code Online (Sandbox Code Playgroud) 我使用 Docker 创建了一个新的 Digital Ocean 服务器(使用Laradock),并使我的 Laravel 网站运行良好。
\n\n现在我想使用Deployer自动化部署。
\n\n我认为我唯一的问题是我无法让 Deployer 运行docker exec -it $(docker-compose ps -q php-fpm) bash;,这是我成功手动使用进入适当 Docker 容器的命令(在使用 SSH 从我的本地计算机连接到 Digital Ocean 服务器之后)。
当 Deployer 尝试运行它时,我收到以下错误消息:
\n\n\xe2\x9e\xa4 Executing task execphpfpm\n[1.5.6.6] > cd /root/laradock && (pwd;)\n[1.5.6.6] < /root/laradock\n[1.5.6.6] > cd /root/laradock && (docker exec -it $(docker-compose ps -q php-fpm) bash;)\n[1.5.6.6] < the input device is not a TTY\n\xe2\x9e\xa4 Executing task deploy:failed\n\xe2\x80\xa2 done on [1.5.6.6]\n\xe2\x9c\x94 Ok [3ms]\n\xe2\x9e\xa4 Executing task …Run Code Online (Sandbox Code Playgroud) 我正在运行 Homestead v8.2.0laravel/homestead (virtualbox, 7.1.0)和 Vagrant 2.2.4。我需要升级,因为我想要 PHP 7.4 支持。
Laravel 文档说首先销毁 vagrant 盒子是必要的,但我知道我不想销毁我原来的盒子,因为我那里还有有价值的数据。所以我想我只会尝试“更新”它,以防万一。
(我非常小心地不使用,destroy因为我不想丢失任何 MySQL 数据库。)
当我跑步时,vagrant global-status我看到:
id name provider state directory
------------------------------------------------------------------------------
5620b14 vboxHomestead virtualbox running C:/code/Homestead
Run Code Online (Sandbox Code Playgroud)
所以我用 git 来结帐v10.2.0Homestead。
我跑了vagrant box update。鉴于 Laravel 文档,我对这种方法不起作用并不感到惊讶。
然后我想:我不会更新我当前的盒子,而是在它旁边创建一个新盒子(仍然不会破坏旧盒子)。
所以我复制C:/code/Homestead到一个新目录C:/code/HomesteadB。
我升级到 Vagrant 2.2.7。我跑了vagrant box add laravel/homestead,看到了新的laravel/homestead (virtualbox, 9.2.0)(注意更高的版本号)。我跑了vagrant up,我继续享受运行 PHP 7.4 的新机器。一切似乎都在按计划进行。
后来,当我有灵感回到我的旧盒子并恢复那里的所有旧数据时,我注意到 MySQL 数据库丢失了! …
我正在尝试编写一个 TypeScript 函数来打乱数组。
默认情况下,我希望洗牌顺序是随机的(但受种子影响)。(我已经可以使用这个功能了function random(seed: number): number:)
但是,我还想允许通过每个项目的重量来影响订单。
换句话说,我希望默认项目权重为 1,如果一个项目的权重为 10,那么它在打乱顺序中较早出现的可能性应该增加 10 倍。
我是否正确地思考过这个问题?这是一个合理的目标吗?
我认为我需要使用 Fisher-Yates 算法,但适应于与主数组长度相同的权重数组,并且主数组将被洗牌,以便较高权重的项目更有可能首先出现。
function removeDuplicates<T>(array: T[]): T[] {
const uniqueValues = new Set<T>();
return array.filter((item) => {
if (!uniqueValues.has(item)) {
uniqueValues.add(item);
return true;
}
return false;
});
}
function duplicateItemsBasedOnWeights<T>(array: T[], weights: number[]): T[] {
const result = [];
for (const [index, element] of array.entries()) {
for (let position = 0; position < weights[index]; position++) {
result.push(element);
}
}
return result;
}
export function …Run Code Online (Sandbox Code Playgroud) laravel ×3
merge ×2
php ×2
svn ×2
vagrant ×2
virtualbox ×2
arrays ×1
docker ×1
docker-exec ×1
homestead ×1
laradock ×1
laravel-5 ×1
mysql ×1
next.js ×1
nginx ×1
orm ×1
php-deployer ×1
postgresql ×1
prisma ×1
random ×1
shuffle ×1
ssh ×1
typescript ×1
wordpress ×1