小编pro*_*mer的帖子

在Laravel Eloquent模型中,我们是否使用camelCase调用表字段名称,即使它们在db中包含下划线?

在数据库中,让我们说,我有我的用户的表这些字段:name,favorite_color,created_at,等...

使用Eloquent保存:

1:

$user = new User;
$user->name = "John";
$user->favorite_color = 'blue';  // Notice the underscore
$user->save();
Run Code Online (Sandbox Code Playgroud)

2:

$user = new User;
$user->name = "John";
$user->favoriteColor = 'blue';  // camelCase
$user->save();
Run Code Online (Sandbox Code Playgroud)

以上哪一个是正确的?

php orm laravel eloquent laravel-4

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

如何折叠/展开PhpStorm中文件中的所有注释块?

在PhpStorm中,什么是折叠或扩展文件中所有注释(doc)块的快速方法?

这里的文档中它说:

Folding and expanding code blocks works for entire classes, inner and
anonymous classes, method bodies, import lists, comments, HTML and XML tags,
closures and language injections.

然后进一步说:

If you hold the Alt modifier and click a toggle button in the gutter, the code block
will be collapsed or expanded recursively, i.e. all sub-blocks within the parent 
block will also be collapsed or expanded.

但是我没看到这是如何Alt modifer工作的?我按住Alt然后单击切换按钮,只有该块单独折叠.我在顶级doc块中以及属性/方法doc块中尝试了这个.我错过了什么吗?

php comments docblocks collapse phpstorm

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

使用 Paypal Payments Advanced(和 NVP API)进行 paypal 快速结账的订单项

我正在使用Paypal Payments Advanced和托管结帐页面 (iframe)。这使客户可以选择单击“paypal 付款”(按钮)(paypal 的快速结帐)或使用信用卡付款。一切似乎都工作得很好,除了在使用 NVP API 传递参数时我未能成功地显示各个行项目。相反,我只看到总数(见下图)。

贝宝结账

我还相信这意味着根本不会发送订单项(即使我使用信用卡付款),因为当我登录 PayPal 查看交易详细信息时,我没有看到任何订单项。

以下是我当前使用的 NVP 参数:

"PARTNER"  => "PayPal", 
"VENDOR"   => "company_here",
"USER"     => "user_here",
"PWD"      => "password_here", 
"TRXTYPE"  => "S",
"AMT"      => "2.16",
"ITEMAMT"  => "2.00",
"TAXAMT"   => "0.16",
"L_NAME0"  => "Test Product 1",
"L_DESC0"  => "Test Product Description",
"L_AMT0"   => "1.00",
"L_TAXAMT0"=> "0.08",
"L_QTY0"   => "1",
"L_NAME1"  => "Test Product 2",
"L_DESC1"  => "Test Product 2 description",
"L_AMT1"   => "1.00",
"L_TAXAMT1"=> "0.08",
"L_QTY1" …
Run Code Online (Sandbox Code Playgroud)

payment paypal nvp express-checkout

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

在Laravel工作台中创建了包,但是如何转移到vendor文件夹?

假设我在Laravel中的包是测试/测试.

我在工作台中创建了这个包,并且在Jason Lewis的教程之后它一直很好用.现在我想将软件包从工作台移到供应商目录.这是所有教程都不足的地方,甚至是laravel文档.我不想使用git来移动文件,所以我只是将测试/测试包从工作台复制到供应商目录(然后从工作台中删除它).我没有从工作台(或我在.gitignore文件中注意到的任何其他文件)复制test/test/vendor文件夹.然后我从我的新vendor/test/test目录运行composer install.然后我从laravel根目录做了一个composer dump-autoload.

现在当我运行我的应用程序时,我得到一个错误,当包在工作台中时我没有得到:

Class 'Test\Test\TestServiceProvider' not found
(this is coming from \bootstrap\compiled.php on line 4121)
Run Code Online (Sandbox Code Playgroud)

我也从laravel根做了一个php artisan dump-autoload,我得到同样的错误.

有任何想法吗?或者有人可以带我到一个教程,将包开发一直带到它在供应商目录中的最终休息点?

workbench laravel laravel-4

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

如何构建需要特定URL查询参数的Laravel路由?

假设我有这样的网址:

  1. localhost/admin/users/ <---主管理员用户页面
  2. localhost/admin/users /?data = refresh <----从该页面发出的典型ajax请求

还有一个像这样的简单控制器:

class UsersController extends Controller {

     public function index()

         // call some services
         // return a view
     }

     public function dataRefresh {

         // call some services
         // return some JSON
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我的routes.php我正在努力:

    Route::get('admin/users', array('as' => 'admin.users', 'uses' => 'Admin\Users\UsersController@index'));
    Route::get('admin/users????' , array('before' => 'ajax', 'as' => 'admin.users', 'uses' => 'Admin\Users\UsersController@dataRefresh'));
Run Code Online (Sandbox Code Playgroud)

我在第二个路径中可以做什么来要求URL查询参数 ?data ,并且还需要将其设置为 data=refresh我如何确保它不与其他路线冲突?

注意:我知道某些人可能不会将此视为"漂亮网址".我在适当的时候实现了漂亮的URL/slugs,但是我也认为在很多情况下查询参数更清晰更清晰(即让用户清楚地了解页面URL的哪一部分用于过滤数据) datagrid ...并确保用户可以删除参数而不会导致页面中断或丢失).谷歌自己以及许多其他声誉良好的网站都是这样做的.

注意:我已将ajax路由过滤器应用于第二个路由.我还设置了路由指向我的控制器中的dataRefresh方法.

这是我所拥有的.有任何想法吗?

php query-parameters laravel laravel-4 laravel-routing

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

如何在每次保存时将NOW()保存到我的Laravel Eloquent模型中的相同字段中?

每次我执行以下操作:

$user = new User;
$user->name = 'John';
$user->save();
Run Code Online (Sandbox Code Playgroud)

我希望NOW()在MySQL中更新一个名为"modified"的字段.我不能使用Laravel的时间戳,因为我只使用一个修改过的字段.我可以依赖MySQL为我做这个,但我想知道是否有办法在我的Laravel模型中实现这一点?也许在某种程度上使用mutator来保存之前设置它?

作为奖励:我将如何做这样的事情$user->modified = "NOW()"?(这显然是错误的,但希望证明这一点)

php laravel eloquent laravel-4

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

有没有人得到memcached在Laravel Homestead php7盒子上工作?

我在新的Homestead php7盒子上装了Laravel/Lumen并遇到了这个错误:

FatalThrowableError in MemcachedConnector.php line 51:
Fatal error: Class 'Memcached' not found
Run Code Online (Sandbox Code Playgroud)

做一个phpinfo();节目没有memcached扩展,但sudo service memcached status说memcached正在运行.这里似乎有一个用于memcached的php7分支:https://github.com/php-memcached-dev/php-memcached/tree/php7

谁能指导我如何让它在新的php7 Homestead VM中运行?

编辑:我刚看到hometead安装文档,它说"Memcached(PHP 5.x Only)".问题仍然是如何让它运作.

memcached laravel homestead php-7 laravel-5.1

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

在领域驱动设计中,如何确定发送电子邮件是应用程序级别还是域级别问题?

假设您有一个名为“Next in Line”的简单应用程序。任何需要长时间排队的企业都可能希望您的软件能够为客户提供更好的排队体验。

利益相关者表示,“客户想要门票时,他们会走到我们的计算机控制台并输入他们的电子邮件地址。然后他们将收到一封电子邮件,其中包含他们的票号和我们应用程序的唯一访问登录权限,以获取更多票务队列功能”。发送带有票号的电子邮件(以及应用程序的访问权限)对于业务来说是不可或缺的。

我们的命令处理程序(应用程序级别)可能如下所示:

class TakeTicketCommandHandler
{
   private $repo;

   public function __construct(TicketRepository $repo)
   {
       $this->repo = $repo;
   }

   public function handle(TakeTicketCommand $command) 
   {
      $ticket = new Ticket(new EmailValueObject($command->getEmail()));

      DB::transaction(function () {
           // Send email here from the command handler? 
           // Seems domain "leaky" because Ticket Aggregate Root is responsible for this?
           ...

           $this->repo->persist($ticket);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我们的票证聚合根可能如下所示:

class Ticket extends AggregateRoot
{
    private $id;
    private $email;

    public function __construct(EmailValueObject $email)
    {
        $this->id = new GUID();
        $this->email = …
Run Code Online (Sandbox Code Playgroud)

php email events domain-driven-design

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

TypeScript 代码中括号前括号中的强制转换/断言是什么意思?

这是我正在查看的一些代码(我是 TypeScript 的新手):

    // Set up decorator
    const proxy = Object.create(null) as ts.LanguageService;
    const oldLS = info.languageService;

    for (const k in oldLS) {
        (<any>proxy)[k] = function () {
            return (<any>oldLS)[k].apply(oldLS, arguments);
        }
    }
Run Code Online (Sandbox Code Playgroud)

看这部分代码:

        (<any>proxy)[k] = function () {
            return (<any>oldLS)[k].apply(oldLS, arguments);
        }
Run Code Online (Sandbox Code Playgroud)

为什么需要强制转换,(<any>proxy)[k]因为并非所有对象都可以通过括号表示法访问?此外,为什么上面的赋值不是简单地写成:((<any>proxy)[k] = (<any>oldLS)[k];这段代码试图完成什么)?

javascript typescript

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

使用正则表达式匹配Laravel路由中的子字符串

我的网址是:www.foo.com/some-bar-slug-here/page

如果在上面显示的slug中找到字符串"bar",我无法获取捕获的路径:

Route::any('{myslug}/page/', array('as'=>'bar-page', 'uses'=>'Controllers\MyBar@index'))
     ->where('myslug','/bar/');
Run Code Online (Sandbox Code Playgroud)

如果我使用正则表达式[0-9A-Za-z\-]+它可以工作,但它不起作用/bar/.有任何想法吗?

php regex routes laravel

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