小编car*_*rse的帖子

Yarn:将JavaScript依赖项重新部署到Production Server的过程(使用`yarn.lock`文件)

我已经阅读了关于Yarn的文档,我知道该lock文件应该提交给VC.见和在一个高层次的解释了为什么锁定文件是必要的,其中列出了一堆命令没有什么他们实际上做太多的解释!

我还读了很多关于StackOverflow的问题,询问lock文件是否应该提交给VC.

但是,所有文档和SO线程似乎都忽略了我想知道的细节,具体如下:什么是正确的程序(正确的一组命令运行):

  1. yarn.lock在需要时更新文件(即在我想要提取最新次要版本的开发环境中并更新lock文件以反映这一点)
  2. 为了使我的锁文件与其他开发人员保持同步,以确保他们从完全相同的依赖版本开发/测试,以及
  3. 用于更新/重新同步node_modules生产服务器上的目录(即确保生产服务器不在依赖包的不同/破坏版本上运行)

我问的部分是因为过去在git pull服务器上执行操作时,我遇到的消息告诉我yarn.lock文件已经独立于开发/ VC过程进行了更新.就我而言,永远不应允许这种情况发生.

javascript git version-control yarnpkg

17
推荐指数
1
解决办法
191
查看次数

Vim:当下一个字符不在同一行时删除到下一个字符

我敢肯定,我会因为问一个重复的问题而被嘲笑; 有人必须先问过这个问题!但在一个小时的搜索中,我还没有找到它.我一定在寻找错误的东西.

在Vi(或Vim)中,我可以}通过键序列删除所有字符dt}(或者df}如果我也想删除括号).

但是,这仅在}角色位于当前行时才有效.我想要做的是删除下一个的所有内容,}即使它第一次出现在后续行上.

我想的是d/}(/}<enter>在任何其他环境中的斜线,将带我到下一次出现}).由于显而易见的原因,这不起作用,但我希望其意图是明确的.

==编辑==

好的没关系...抱歉.你没事,它确实有效(在我的清洁安装机器上).可能是配置文件中的一些混乱的映射,但它不适用于我的另一个.

惭愧地低着头

vim

16
推荐指数
1
解决办法
2749
查看次数

Laravel Artisan:`schedule:run` 是如何工作的?

我设置了一个虚拟命令作业,其handle()功能如下:

public function handle()
{
    $this->line('==================');
    $this->line('Running my job at ' . Carbon::now());
    $this->line('Ending my job at ' . Carbon::now());
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它实际上并没有做任何事情,只是将几行信息返回到标准输出。

现在,在我的App\Console\Kernel课堂上,我制定了以下时间表:

protected function schedule(Schedule $schedule)
{
    $schedule
        -> command('cbh:dummyCommand')
        -> everyMinute()
        -> appendOutputTo (storage_path().'/logs/laravel_output.log');
}
Run Code Online (Sandbox Code Playgroud)

现在,我从命令行运行php artisan schedule:run. 我的laravel_output.log文件中的输出读取

==================
Running my job at 2018-02-08 11:01:33
Ending my job at 2018-02-08 11:01:33
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。看来我的日程正在运行。但是,如果我在同一分钟内再次运行该命令,我的日志文件现在会显示:

==================
Running my job at 2018-02-08 11:01:33
Ending my job at 2018-02-08 11:01:33
==================
Running my job …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-artisan

9
推荐指数
2
解决办法
2万
查看次数

Bool支持Oracle SQL

Oracle PL/SQL支持bool数据类型,而Oracle SQL则不支持数据类型.当您想要将PL/SQL布尔返回值处理回日常SQL时(例如下面的例子),这是众所周知的痛苦.

即使是问汤姆网站也对这种不合适感到沮丧,报告你应该将布尔列编码为固定值'Y'/'N' CHAR列,这是一个如此糟糕的副作用答案,在很多不同的层面上,我不知道从哪里开始批评它.事实上,这种响应的唯一赎回质量是(据我最近发现),许多其他数据库引擎也不支持布尔数据类型.

无论如何 - 问题......

我有一个解决以下问题的方法(虽然凌乱和冗长),所以我出于好奇而不是必要来问这个问题.但是让我感到惊讶的少数几件事之一就是聪明的程序员的聪明才智,所以希望你们中的一个人能够提出以下解决方案.

在下面的示例中,函数stock_pkg.is_in_stock()(这是我的应用程序的固有部分)返回BOOL值,导致SQL无效(请记住,SQL不支持BOOL):

SELECT part_no, stock_pkg.is_in_stock(part_no) in_stock
FROM   parts_table
Run Code Online (Sandbox Code Playgroud)

我需要的是找到一种方法来使用上面的函数调用来生成格式的有效字符串(varchar)输出:

PART_NO IN_STOCK
------- ------------
AA      YES
BB      NO
CC      NO
Run Code Online (Sandbox Code Playgroud)

(你可以用'是/否'代替'真/假','绿/红','保守/劳工'或甚至数字1/0代替所有我关心的 - 只要输出属于两个不同的一个类别.)

不幸的是,我没有权限重写原始函数以返回不同的数据类型.此外,在这个较大的应用程序中有数千个这样的函数,这使得重写它们变得不切实际.

所以在这个意义上,解决方案必须是"通用"解决方案(即不特定于此函数调用).例如,重写函数是不够的stock_pkg.is_in_stock_chr(),因为这意味着必须重新编写我的应用程序中的所有其他类似函数.

我已经尝试过了:

SELECT part_no,
       CASE WHEN stock_pkg.is_in_stock(part_no) THEN 'y' ELSE 'n' END in_stock
FROM   parts_table
Run Code Online (Sandbox Code Playgroud)

甚至我自己的包装函数:

SELECT part_no,
       my_bool_to_str(stock_pkg.is_in_stock(part_no)) in_stock
FROM   parts_table
Run Code Online (Sandbox Code Playgroud)

但是,即使在其他功能结构中包含布尔值也不会被Oracle SQL所允许(至少在Oracle 10g中不允许).

还可以选择在in_stock列内部编写子选择,但在极端示例中也可能会过于复杂,并且也可能是特定于案例的.

正如我所说,我希望在那里有一个巧妙的解决方案(或者至少是一个我碰巧忽略的非常简单的解决方案).

谢谢你的时间.

sql oracle boolean

8
推荐指数
1
解决办法
1218
查看次数

错误包从 Laravel Livewire Blade 模板中消失

以下 PHP 代码用于捕获来自 Livewire 表单的输入。该表单更新用户的密码,对于眼尖的人来说,您可能会发现它的大部分内容取自 Laravel Fortify 框架。

/**
 * Validate and update the user's password.
 *
 * @param  mixed  $user
 * @param  array  $input
 * @return void
 */
public function update($user, array $input)
{
    try {
        Validator::make($input, [
            'current_password' => ['required', 'string'],
            'password' => $this->passwordRules(),
        ])->after(function ($validator) use ($user, $input) {
            if (! isset($input['current_password']) || ! Hash::check($input['current_password'], $user->password)) {
                $validator->errors()->add('current_password', __('The provided password does not match your current password.'));
            }
        })->validateWithBag('updatePassword');
    } catch (\Illuminate\Validation\ValidationException $e) {
        dd ($e);
    } …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-livewire laravel-fortify

6
推荐指数
1
解决办法
785
查看次数

从扩展模板调用时$ smarty.current_dir值

我的代码如下:

content.tpl:

{* Smarty *} 
{extends file='PageContentLayout.tpl'}
Run Code Online (Sandbox Code Playgroud)

PageContentLayout.tpl

{* Smarty *} 
{block name="file_name"}
    <p>{$smarty.current_dir}</p>
    <p>{$smarty.template}</p>
{/block}


{block name="other_content"} 
    ... 
    {* blah... *} 
    ... 
{/block} 
Run Code Online (Sandbox Code Playgroud)

在早期版本的smarty中,此代码将打印模板名称和文件路径:content.tpl.

但是,我刚刚升级到3.1.29,现在看来它PageContentLayout.tpl是正在打印的基本文件的名称.

我认为这是Smarty的不同版本中的故意设计更改,但我找不到有关这些更改的任何文档.

我真正想知道的是,实现前一功能的最佳方法是什么?

==编辑==

我注意到,调用,即使{$smarty.current_dir}从延长荷兰国际集团的文件,我们仍然得到基本文件的路径和文件名.这是与早期版本相比的一个重大变化,在我的情况下非常严重,因为我不能再编写动态代码来查找顶级文件的路径.

php smarty smarty3

5
推荐指数
1
解决办法
220
查看次数

Laravel 组件:{{ slot }} 中的默认内容

在旧式的 Laravel Blade 模板中,我们使用@section('section-name')以下方式:

{{-- h1para.blade.php --}}
<h1>
    @section('heading')
        Heading from Template
    @endsection
</h1>
<p>
    @yield('details')
</p>
Run Code Online (Sandbox Code Playgroud)

然后扩展该模板:

{{-- content.blade.php --}}
@extends('h1para')

@section('details')
    Content from content page
@endsection
Run Code Online (Sandbox Code Playgroud)

在上面,我渲染的 HTML 输出如下所示,因为'heading'扩展文件中的“缺失”部分意味着我们默认返回模板中的内容:

<h1>Heading from Template</h1>
<p>Content from content page</p>
Run Code Online (Sandbox Code Playgroud)

但在新的组件做事方式中,我这样做:

<h1>Heading from Template</h1>
<p>Content from content page</p>
Run Code Online (Sandbox Code Playgroud)

如果您还没有收集到,问题是:如何为槽的内容设置默认值,这样如果扩展组件/模板中没有提供它,它就会回退到该默认值?

(我已经完成了搜索,但无法找到之前提出的相同问题)


编辑:

我应该补充一点,我已经看到了解决方案(在 Laravel 文档中):

{{-- .../components/h1para.blade.php --}}
<h1>{{ $heading }}</h1>
<p>{{ $slot }}</p>
Run Code Online (Sandbox Code Playgroud)

但这似乎仅适用于默认值是易于管理的短字符串的情况。如果默认是很长的 HTML 流,那么它就无法满足我的需求。


编辑2:

重申一下:问题的关键在于默认内容可能是一长串 HTML。通过传入字符串(无论是否格式化为 HTML)来解决问题无法满足我的实际需求。

laravel laravel-blade laravel-components

5
推荐指数
1
解决办法
3312
查看次数

Laravel Eloquent (PDO):检查事务是否处于活动状态

我觉得这应该是一个简单的答案。但是,我无法在文档或其他任何地方找到直接答案。

在 Laravel PHP 框架中,我打开数据库事务时遇到类似于以下情况的情况:

(当然,我的示例与我正在使用的现实世界的东西相比被大大简化了,所以请不要使用“你为什么要这样做”类型的响应)。这是我感兴趣的原则。

try {

    if ($conditions == $criteria) {
       DB::connection('oracle')->beginTransaction();
    }
    // blah...
Run Code Online (Sandbox Code Playgroud)

稍后在代码中,我只想检查事务是否正在进行。我的条件语句的伪代码如下所示:

    if ( DB::connection('oracle')->transactionIsOngoing() ) {

        // do some stuff with the on-going transaction
        DB::connection('oracle')->commit();

        // if I were to execute "DB::connection('oracle')->transactionIsOngoing()"
        // again here it would return FALSE, because the commit command has
        // completed the open transaction

    }
Run Code Online (Sandbox Code Playgroud)

我应该用什么实际代码来替换DB::connection('oracle')->transactionIsOngoing()

php laravel eloquent laravel-5

4
推荐指数
1
解决办法
5134
查看次数

Smarty:获取当前的物理文件路径

在Smarty中,有没有办法检索模板文件的当前物理路径?

我正在寻找与PHP相当的Smarty __FILE__超级变量.

(我敢肯定以前一定会问过这个问题,但我不能为我的生活找到它.或者也许有一个很好的理由没有被问到!?)

php smarty smarty3

3
推荐指数
1
解决办法
6747
查看次数