小编sul*_*man的帖子

Laravel 查询生成器,其中 NULL 没有结果

我有如下代码来获取装运数据在哪里pdf_url不是NULL;

$shipment_data = DB::table('shipment')->where([
 'shipment_date' => '2017-12-11', ['pdf_url', '<>', 'NULL']])->get();
Run Code Online (Sandbox Code Playgroud)

这没有问题,我得到了我需要的数据,但是当我尝试使用相同的代码来获取带有pdf_urlis的数据时NULL,它没有结果。

$shipment_data = DB::table('shipment')->where([
 'shipment_date' => '2017-12-11', ['pdf_url', '=', 'NULL']])->get();
Run Code Online (Sandbox Code Playgroud)

我缺少什么?我很确定数据库记录在那里。我也尝试了其他格式,但仍然没有结果;

$shipment_data = DB::table('shipment')->where([
 'shipment_date' => '2017-12-11', ['pdf_url', 'NULL']])->get();
Run Code Online (Sandbox Code Playgroud)

$shipment_data = DB::table('shipment')->where([
 'shipment_date' => '2017-12-11', 'pdf_url' => 'NULL'])->get();
Run Code Online (Sandbox Code Playgroud)

编辑:我可以使用whereRaw,但我更喜欢使用where。下面的代码没有问题;

$shipment_data = DB::table('shipment')
 ->whereRaw('shipment_date = "2017-12-11" AND pdf_url is NULL')->get();
Run Code Online (Sandbox Code Playgroud)

php query-builder laravel laravel-5

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

在提交之前向 Symfony 表单添加其他字段

我正在使用 Goutte,https://github.com/fabpot/goutte,并有以下代码,

$client = new Client();

$crawler = $client->request('GET', \Config::get('Eload2::url'));

$form = $crawler->selectButton('Submit')->form();

// add extra fields here

$client->submit($form);
Run Code Online (Sandbox Code Playgroud)

如何在提交表单之前将隐藏的输入字段添加到表单中?

我尝试了以下代码,

$domdocument = new \DOMDocument;

$formfield = new InputFormField ($domdocument->createElement('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$DDLTelco'));

$formfield2 = new InputFormField ($domdocument->createElement('__EVENTARGUMENT',''));

$form->set($formfield); 

$form->set($formfield2);
Run Code Online (Sandbox Code Playgroud)

但返回以下错误消息,

InputFormField 只能从输入或按钮标签(给定的 __EVENTTARGET)创建。

php forms symfony-forms symfony domcrawler

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

模拟 Laravel 自定义验证规则类不起作用

我正在表单提交中实施新的自定义验证规则。但我想绕过单元测试中的验证规则。下面是验证规则和单元测试类的简化。我缺少什么?

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class Captcha implements Rule
{
    public function passes($attribute, $value)
    {
        // assuming will always return false in testing
        // works fine when true
        return false; 
    }

    public function message()
    {
        return 'Captcha error! Try again later or contact site admin.';
    }
}
Run Code Online (Sandbox Code Playgroud)
use Tests\TestCase;
use App\Rules\Captcha;

class RegistrationTest extends TestCase {

    public test_user_registration()
    {
        $this->mock(Captcha::class, function ($mock) {
            $mock->shouldReceive('passes')->andReturn(true);
        });

        $response = $this->post(route('tenant.register'), [
            'g-recaptcha-response' => 1,
            'email' => 'user@example.com',
            'password' => 'secret',
        ]);

        $this->assertEquals(1, …
Run Code Online (Sandbox Code Playgroud)

phpunit laravel-5

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