小编Mar*_*łek的帖子

如何在Laravel 4中创建自定义Facade

看了几个关于外墙和laravel 4的教程...尝试了一些......不喜欢他们工作的方式.

例如,他们并不都提供了一种定义外观文件和服务提供商存储位置的方法......我试图远离那个并让我的头撞到几个墙,直到我决定做这个线程.

所以:假设我有一个名为Laracms(laravel cms)的应用程序.

我想将我创建的所有内容 - 外墙,服务提供商等存储在名为laracms的app下的文件夹中.

所以我有/ app/laracms/facades,/ app/laracms/serviceproviders等等.我不想将外观与数据库模型混合在一起,我希望尽可能将内容保持分离.

在我的例子中,现在让我们看一下外观的设置名称(我希望实现一个设置类,用于视图和管理员来设置misc.的东西).

Settings :: get(),Settings :: set()作为方法.

任何人都可以解释如何正确设置外墙?我不知道我做错了什么,我需要一个新的开始.

谢谢,克里斯

寻找一步一步的简单解释如何以及为什么.

php database facade laravel laravel-4

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

如何使用Laravel IoC将数据库注入构造函数

我想使用DB类与IoC Container进行交易.

use Illuminate\Database\Connection as DB;
public function __construct(DB $db)
{
    $this->db = $db;
}
Run Code Online (Sandbox Code Playgroud)

但是当使用db class时,我收到了一个错误.

Unresolvable dependency resolving [Parameter #0 [ <required> $dsn ]] in class PDO
Run Code Online (Sandbox Code Playgroud)

我知道,必须绑定一些东西,但我不知道是什么?

php pdo inversion-of-control laravel laravel-4

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

数据库设计 - 关系与属性

我在设计数据库(SQL/MySQL)时遇到问题.假设我们有一个用户,用户可以有很多朋友和很多帖子,并填写一些关于他自己的数据.

很明显,因为friends我们需要一个pivot_table用于n:n关系,因为posts我们需要创建一个带有user_id(1:n)关系的额外表.

所以我们需要users,user_friendsposts表.这很明显.这就是应该如何处理关系.

但现在让我们假设我们希望用户拥有以下数据:

name - text
description - text
marital status - select only one from list
favourite colour - select only one from list
hobby - select up to 3 from list
Run Code Online (Sandbox Code Playgroud)

对于文本字段(名称,描述),我们只需在users表中创建varchar/text列就可以了.

一般问题是:如何处理其他字段(从列表中选择)?我应该为它们创建关系,还是应该用它们创建标准数据列?

在我看来,没有必要为此创建关系表,因为使用列表(选择)我们只限制用户实际上可以粘贴到数据库中.理论上,我们可以允许用户手动输入他喜欢的颜色(例如red,如果他输入错误的东西,例如reds我们会比较它将允许的列表colours).性别也是如此 - 我认为,当我们只拥有女性和男性并为其创造关系时,创造额外的表格是没有意义的.

第一个DB设计:

例如,我可以为属性创建以下列:

marital_status - int
fav_colour - int
hobby_1 - int
hobby_2 - int
hobby_3 - int
Run Code Online (Sandbox Code Playgroud)

还有另外一个表(甚至用PHP或其他语言的普通数组),我存储值为1的fav_colour例如是红色,值为2的爱好是音乐等等(我在这里存储这些值并不重要- 我也可以使用enum …

mysql sql database database-design relational-database

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

Laravel无法修改排队的作业代码

当我发送由于例外而失败的作业时,'ErrorException' with message 'Undefined variable: sender'我修复了代码并重新启动了事件,之前的代码再次运行,我得到了同样的错误.

我不知道为什么Laravel一遍又一遍地重新运行我的旧代码.我显然希望能够解决破坏我的工作执行的错误.

我已经尝试了两者composer dump-autoload并且php artisan queue:flush那些没有效果.有帮助吗?

php jobs supervisord laravel composer-php

6
推荐指数
2
解决办法
3343
查看次数

Xdebug in Vagrant laravel/homestead V0.4.0/v3.0.1

我设置了一个流浪盒laravel/homestead v0.4.0.
我用composer安装了Homestead V3.0.1.
最后,我运行"vagrant up"然后"vagrant ssh",我在Homestead VM中,但......

它应该包括Xdebug,但它没有...
当我运行时phpinfo(),没有Xdebug信息.
同样在文件夹中/etc/php/7.0/fpm/php.iniconfig.d文件夹中,没有Xdebug的配置.

我的最终目标是能够使用Netbeans IDE调试laravel项目.该项目在宅基地VM内部运行,但我不明白为什么宅基地虚拟机中没有Xdebug.任何有助于实现这一点的人都非常感谢

php xdebug vagrant laravel homestead

6
推荐指数
2
解决办法
2483
查看次数

Auth :: user()不会穿过子域? - Laravel 5.2

我的网站中有一个子域名,例如:

http://example.ca
http://blog.example.ca
Run Code Online (Sandbox Code Playgroud)

博客只有拥有网址的人才能访问,也就是说,它不是公共或常识.我有一堆与此域名相关的路由,要求您登录.

我已经说过nav.blade.php,如果用户登录,则应该有一个下拉列表,如果没有,则不应该有下拉列表.

这一切都有效,http://blog.example.ca但是当我去的时候,http://example.ca我不再被认证了.

是否有任何方法可以让我在所有子域中进行身份验证?不只是那些需要我进行身份验证的控制器操作的人?

subdomain session laravel laravel-5 laravel-5.2

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

使用laravel拒绝.composer/config文件权限

我在ubuntu虚拟机上有一个laravel项目.我曾经跑过composer update,一切都很好.我不知道任何可能影响这一点的变化,但现在当我跑步时,composer update我得到了

file_get_contents(/home/user/.composer/config.json): failed to open stream: Permission denied

有谁知道为什么?当我跑步时sudo composer update,它有效.

php ubuntu virtualbox laravel composer-php

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

在laravel测试中调用命名路由

考虑以下:

<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class HomeRouteTest extends TestCase
{
    public function testVisitTheHomePage()
    {
        $response = $this->call('GET', '/');
        $this->assertEquals(200, $response->status());

    }

    public function testVisitTheAboutPage()
    {
        $response = $this->call('GET', '/about');
        $this->assertEquals(200, $response->status());
    }
}
Run Code Online (Sandbox Code Playgroud)

离开了,而不是我见过记录>.>,做类似的事情:

$response = $this->call('GET', 'home.about');
$this->assertEquals(200, $response->status());
Run Code Online (Sandbox Code Playgroud)

或者....你是怎么做到的?

我得到的错误是:

vagrant@scotchbox:/var/www$ phpunit
PHPUnit 4.8.21 by Sebastian Bergmann and contributors.

FF

Time: 3.41 seconds, Memory: 14.25Mb

There were 2 failures:

1) HomeRouteTest::testVisitTheHomePage
Failed asserting that 404 matches expected 200.

/var/www/tests/HomeRouteTest.php:12

2) HomeRouteTest::testVisitTheAboutPage
Failed asserting that 404 …
Run Code Online (Sandbox Code Playgroud)

testing phpunit unit-testing laravel-5 laravel-5.2

6
推荐指数
2
解决办法
4074
查看次数

即使提供了自定义消息,验证失败也会返回默认错误消息

我没有得到我期望的答复。

这是“位置” Web服务请求的控制器代码:

<?php
namespace App\Http\Controllers;

use App\Location;
use Illuminate\Http\Request;


class LocationController extends Controller
{


    /**
     * Action method to add a location with the supplied Data
     * 
     * @param \Illuminate\Http\Request $p_oRequest Request
     * 
     * @return JSON
     */
    public function add(Request $p_oRequest)
    {

        try {

            $p_oRequest->validate(
                array(
                    'name' => 'required|alpha_num',
                    'user_id' => 'required|integer',
                ),
                array(
                    'name.required' => 'Name is required',
                    'name.string' => 'Name must be alphanumeric',
                    'user_id.required' => 'Curator User Id is required',
                    'user_id.required' => 'Curator User Id must be …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-validation laravel-5.5

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

Alpine.js - 嵌套组件

我有这样的带有嵌套组件的代码:

<html>
<head>

<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" defer></script>

</head>

<body>
  <div x-data="{isOpen: false}">
    <div x-data="{isOtherOpen: false}">
     
     
     <a href="#" @click="isOpen = !isOpen">Toogle element</a>

      <div x-show="isOpen">
        Now element is opened

      </div>


      <a href="#" @click="isOtherOpen = !isOtherOpen">Toogle other element</a>

      <div x-show="isOtherOpen">
        Now other element is opened
      </div>
      
    </div>
  </div>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。有什么理由让它使用嵌套组件工作,或者 Alpine.js 还不能处理这个问题?当然,我知道改变:

<div x-data="{isOpen: false}">
   <div x-data="{isOtherOpen: false}">
Run Code Online (Sandbox Code Playgroud)

进入

<div x-data="{isOpen: false, isOtherOpen: false}">
   <div>
Run Code Online (Sandbox Code Playgroud)

会解决这个问题,但这样我就会有单个组件。

javascript alpine.js

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