小编jma*_*sen的帖子

Laravel:使用Fluent在JOIN中使用复杂条件

由于复杂模式和需要使用Fluent或Eloquent的库(不仅仅是原始DB :: query()),我需要创建:

LEFT JOIN `camp_to_cabin` 
ON `camper_to_cabin`.`cabin_id` = `camp_to_cabin`.`cabin_id`
AND `camp_to_cabin`.`camp_id` =1 OR `camp_to_cabin`.`camp_id` IS NULL
Run Code Online (Sandbox Code Playgroud)

作为连接子句; 我已经尝试了回调和我能想到的其他一切,但无法获得正确的语法来生成.

我试过了:

    ->left_join('camp_to_cabin', function ($join){
        $join->on( 'camper_to_cabin.cabin_id', '=', 'camp_to_cabin.cabin_id')
        $join->on( 'camp_to_cabin.camp_id', '=', 1)
        $join->on( 'camp_to_cabin.camp_id', '=', null)

    })
Run Code Online (Sandbox Code Playgroud)

但它会在我的1&null(我知道空位不正确 - 试验)周围放置反引号,我无法摆脱; 否则它看起来非常接近

有帮助吗?

TIA


谢谢,菲尔 - 最后的答案是:

->left_join('camp_to_cabin', function ($join) use ($id){
$join->on( 'camper_to_cabin.cabin_id', '=', 'camp_to_cabin.cabin_id');
$join->on( 'camper_to_cabin.cabin_id', '=', DB::raw($id));
$join->or_on( 'camper_to_cabin.cabin_id', 'IS', DB::raw('NULL'));
 })
Run Code Online (Sandbox Code Playgroud)

laravel laravel-3

7
推荐指数
1
解决办法
7355
查看次数

这个C#编码代码的PHP等价物是什么?

我想将以下C#代码转换为PHP.

C#是:

byte[] operation = UTF8Encoding.UTF8.GetBytes("getfaqs");
byte[] secret = UTF8Encoding.UTF8.GetBytes("Password");

var hmac = newHMACSHA256(secret);
byte[] hash = hmac.ComputeHash(operation);
Run Code Online (Sandbox Code Playgroud)

我已经变成了这个:

$hash = hash_hmac( "sha256", utf8_encode("getfaqs"), utf8_encode("Password"));
Run Code Online (Sandbox Code Playgroud)

然后我有:

var apiKey = "ABC-DEF1234";
var authInfo = apiKey + ":" + hash

//base64 encode the authorisation info
var authorisationHeader = Convert.ToBase64String(Encoding.UTF8.GetBytes(authInfo));
Run Code Online (Sandbox Code Playgroud)

我认为应该是:

$authInfo = base64_encode($apiKey . ":" . $hash);
Run Code Online (Sandbox Code Playgroud)

要么

$authInfo = base64_encode(utf8_encode($apiKey . ":" . $hash));
Run Code Online (Sandbox Code Playgroud)

但不确定,请注意第二个编码使用Encoding.UTF8,而不是UTF8Encoding.UTF8.

PHP代码应该是什么样的?

php c#

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

计算ng重复Angularjs中的值之和

我是Angularjs的新手.我正在使用ng-repeat显示项目列表.如何计算它的总和?是否有任何简单的方法来使用表达式在html中计算它?

name  numberofyears amount interest 
 xxx       2          4000   4%
 yyy       3          3000   10%
 zzz       5          6000    6%

 Total     10        13000   16%
Run Code Online (Sandbox Code Playgroud)

前三行来自ng repeat.我只想计算总数,如上所示.提前致谢

这非常类似于计算AngularJS中重复元素的总和 - 重复此问题.但不完全是.我正在尝试使用表达式来计算,因为我有很多行

javascript angularjs angularjs-ng-repeat

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

domxpath - 从第二个ul中提取li标签

我试图从下面提取第二个ul的li标签.不幸的是,html中没有类或id来帮助

<ul>
    <li>Some text</li>
    <li>Some text</li>
    <li>Some text</li>
</ul>

<ul>
    <li>Some more text</li>
    <li>Some more text</li>
    <li>Some more text</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我试过(实际上是一些事情):

    $ul = $xpath->query('//ul')->item(1);
    $query = '/li';
    $lis = $xpath->evaluate($query, $ul);
Run Code Online (Sandbox Code Playgroud)

想到这将得到第二个ul,然后我可以从那里提取.它确实让我得到了第二个ul的html,但我显然误解了` - >评价的东西?因为我的李是李的全部,而不仅仅是第二次.

php domxpath

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

正则表达式替换mailto:hrefs但忽略站点链接

我需要一些帮助来调整这个正则表达式:

$content = 'more <a href="http://www.test.com">test</a> test <a href="mailto:jeff@test.com">Jeff</a> this is a <a href="http://www.test.com">test</a>';

$content = preg_replace("~<a .*?href=[\'|\"]mailto:(.*?)[\'|\"].*?>.*?</a>~", "$1", $content); 
Run Code Online (Sandbox Code Playgroud)

这个表达式是从一个mailto链接剥离html标记,然后只返回电子邮件(jeff@test.com)

它工作得很好,除了我上面给出的例子 - 因为在模式中的href之前允许无限数量的空格,当网站链接在mailto链接之前时,正则表达式一直向前看,直到找到mailto:在以下链接中删除其间的所有内容.

也许修复只是将它限制在开始标记之后的两个或三个空格,以便看起来不那么遥远,但我想知道是否有更好的解决方案来自那些比我更了解正则表达式的人?

php regex

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