标签: laravel

如何让查询生成器将其原始SQL查询输出为字符串?

给出以下代码:

DB::table('users')->get();
Run Code Online (Sandbox Code Playgroud)

我想获取上面的数据库查询生成器将生成的原始SQL查询字符串.在这个例子中,它将是SELECT * FROM users.

我该怎么做呢?

php sql laravel laravel-4 laravel-query-builder

470
推荐指数
25
解决办法
52万
查看次数

Laravel 5中定制助手的最佳实践

我想创建辅助函数以避免在Laravel 5中的视图之间重复代码:

view.blade.php

<p>Foo Formated text: {{ fooFormatText($text) }}</p>
Run Code Online (Sandbox Code Playgroud)

它们基本上是文本格式化功能.我在哪里以及如何使用这些功能创建文件?

php laravel laravel-5 laravel-helper

426
推荐指数
16
解决办法
19万
查看次数

Laravel需要Mcrypt PHP扩展

我试图使用migrate功能Laravel 4OSX.但是,我收到以下错误:

Laravel requires the Mcrypt PHP extension.
Run Code Online (Sandbox Code Playgroud)

据我了解,它已经启用(见下图).

有什么问题,我该如何解决?

在此输入图像描述

php mcrypt laravel laravel-4

408
推荐指数
19
解决办法
25万
查看次数

如何使用Laravel Eloquent创建多个Where子句查询?

我正在使用Laravel Eloquent查询构建器,我有一个查询,我希望WHERE在多个条件下有一个子句.它有效,但它并不优雅.

例:

$results = User::where('this', '=', 1)
    ->where('that', '=', 1)
    ->where('this_too', '=', 1)
    ->where('that_too', '=', 1)
    ->where('this_as_well', '=', 1)
    ->where('that_as_well', '=', 1)
    ->where('this_one_too', '=', 1)
    ->where('that_one_too', '=', 1)
    ->where('this_one_as_well', '=', 1)
    ->where('that_one_as_well', '=', 1)
    ->get();
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,还是我应该坚持这种方法?

php laravel eloquent laravel-query-builder

341
推荐指数
12
解决办法
47万
查看次数

PDOException SQLSTATE [HY000] [2002]没有这样的文件或目录

我相信我已成功将我的(非常基本的)站点部署到fortrabbit,但是一旦我连接到SSH运行一些命令(例如php artisan migratephp artisan db:seed),我收到一条错误消息:

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
Run Code Online (Sandbox Code Playgroud)

在某些时候,迁移必须有效,因为我的桌子在那里 - 但这并不能解释为什么它现在不适合我.

php mysql pdo laravel

280
推荐指数
16
解决办法
42万
查看次数

PHP中的正确存储库模式设计?

前言:我正在尝试在具有关系数据库的MVC架构中使用存储库模式.

我最近开始用PHP学习TDD,并且我意识到我的数据库与我的应用程序的其余部分非常接近.我已经阅读了有关存储库和使用IoC容器将其"注入"我的控制器的内容.很酷的东西.但是现在有一些关于存储库设计的实际问题.考虑以下示例.

<?php

class DbUserRepository implements UserRepositoryInterface
{
    protected $db;

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

    public function findAll()
    {
    }

    public function findById($id)
    {
    }

    public function findByName($name)
    {
    }

    public function create($user)
    {
    }

    public function remove($user)
    {
    }

    public function update($user)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

问题#1:字段太多

所有这些find方法都使用select all fields(SELECT *)方法.但是,在我的应用程序中,我总是试图限制我获得的字段数量,因为这通常会增加开销并减慢速度.对于那些使用这种模式的人,你如何处理这个?

问题#2:方法太多了

虽然这个类现在看起来不错,但我知道在现实世界的应用程序中我需要更多的方法.例如:

  • findAllByNameAndStatus
  • findAllInCountry
  • findAllWithEmailAddressSet
  • findAllByAgeAndGender
  • findAllByAgeAndGenderOrderByAge
  • 等等.

如您所见,可能存在非常长的可能方法列表.然后,如果您添加上面的字段选择问题,问题就会恶化.在过去,我通常只是将所有这些逻辑放在我的控制器中:

<?php

class MyController
{
    public function users()
    {
        $users = User::select('name, email, status') …
Run Code Online (Sandbox Code Playgroud)

php database repository repository-pattern laravel

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

使用Laravel Eloquent获取最后插入的ID

我目前正在使用以下代码在表中插入数据:

<?php

public function saveDetailsCompany()
{
    $post = Input::All();

    $data = new Company;
    $data->nombre = $post['name'];
    $data->direccion = $post['address'];
    $data->telefono = $post['phone'];
    $data->email = $post['email'];
    $data->giro = $post['type'];
    $data->fecha_registro = date("Y-m-d H:i:s");
    $data->fecha_modificacion = date("Y-m-d H:i:s");

    if ($data->save()) {
        return Response::json(array('success' => true), 200);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想返回插入的最后一个ID,但我不知道如何获取它.

亲切的问候!

php database laravel eloquent

260
推荐指数
15
解决办法
41万
查看次数

Laravel 4使用ORERE和OR进行Eloquent查询?

我怎么说 WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)

对于更复杂的查询,我应该使用原始SQL吗?

php laravel eloquent laravel-query-builder

254
推荐指数
11
解决办法
30万
查看次数

雄辩的收集:计数和检测空

这可能是一个微不足道的问题,但我想知道Laravel是否建议某种方法来检查返回的Eloquent集合是否$result = Model::where(...)->get()为空,以及计算元素的数量.

我们目前正在使用!$result检测空结果,是否足够?至于count($result)它是否真的涵盖了所有情况,包括空洞的结果?

laravel eloquent laravel-4 laravel-collection

242
推荐指数
8
解决办法
26万
查看次数

Laravel 5:使用Blade显示HTML

我有一个字符串返回到我的一个视图,如下所示:

$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
Run Code Online (Sandbox Code Playgroud)

我正试图用Blade显示它:

{{$text}}
Run Code Online (Sandbox Code Playgroud)

但是,输出是原始字符串而不是呈现HTML.如何在Laravel 5中使用Blade显示HTML?

PS.PHP echo()正确显示HTML.

laravel blade laravel-5

241
推荐指数
15
解决办法
19万
查看次数