标签: eloquent

如何测试是否设置了从Eloquent查询返回的对象?

我正在测试用户是否已经在数据库中有记录(d).

我的查询:

$userResults = Results::where('d','=',Input::get('d'))
                      ->where('user','=',Input::get('user'),'AND')->get();
Run Code Online (Sandbox Code Playgroud)

var_dump回报

object(Illuminate\Database\Eloquent\Collection)#333 (1) { ["items":protected]=> array(0) { } }
Run Code Online (Sandbox Code Playgroud)

当空时或结果数组(如果有).

如何测试对象isset

php arrays laravel eloquent

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

雄辩的分页在4.2上打破

使用带有Eloquent的paginate时收到以下错误:

Argument 2 passed to Illuminate\Pagination\Factory::__construct() must be an instance of Illuminate\View\Factory, instance of Illuminate\View\Environment given, called in C:\****\vendor\laravel\framework\src\Illuminate\Pagination\PaginationServiceProvider.php on line 23 and defined

出于测试目的,这就是我在控制器方法中的全部内容:

return User::paginate(15);
Run Code Online (Sandbox Code Playgroud)

我从文档中了解升级过程,但我没有提到任何参考文献.

更新:

在我的特定情况下,工作台中有一个包需要Illuminate 4.1组件,我在composer.json中更改为4.2,删除了供应商目录和composer.lock文件,安装了作曲家,错误消失了.

这些操作都在包文件夹中完成.

php laravel eloquent laravel-4

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

Laravel框架中的继承

是否可以在laravel模型中使用继承?我解释:

是否可以执行一个扩展雄辩类的模型?

class A extends Eloquent
{
}

class B extends A
{
}
Run Code Online (Sandbox Code Playgroud)

e B也是2个不同的表,B有A_id作为外键和其他字段.怎么可能是B级的构造函数?它是一种可行的解决方案还是更好地使用hasOne关系?

没有每个A对象也是B对象.ES.用户和老师

谢谢

php models laravel eloquent laravel-4

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

Laravel Eloquent ORM和条件陈述

我试图使用Laravel的Eloquent ORM和条件语句,例如,在Codeigniter中我可以使用以下语法来过滤我的数据库结果;

<?php
      $this->db->select('*')->from('demos'); 

      if (isset($data) && is_numeric($data) ) 
      {
         $this->db->where('type_id', $data);
      } 

      if (isset($name) && is_string($name) ) 
      {
         $this->db->where('name', $name);
      }

      return $this->db->get(); ?>
Run Code Online (Sandbox Code Playgroud)

我尝试了同样的实现,似乎没有用; 如何使用Eloquent复制上述内容?

谢谢你的协助

php laravel eloquent

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

Laravel为模型添加功能

我想在Laravel模型中添加一个函数,就像我在Rails中习惯的那样.

例如:

class Person < ActiveRecord::Base
    def name
        "#{firstname} #{lastname}"
    end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试在Laravel中使用相同的方法时,我得到以下异常:

Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation
Run Code Online (Sandbox Code Playgroud)

我如何在Laravel中获得这种行为?

php model ruby-on-rails laravel eloquent

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

有没有办法建立一个基于雄辩的输入参数的查询?

为了更好地解释这个问题,我将举一个例子:

假设我有一个世界记录数据库,并希望为它创建一个api.假设我想添加一个接收search路径GETPOST参数(让我们保持简单,GET现在就说).是否有可能编写一个search控制器方法,它使用类似数组的东西作为Eloquent where方法的参数,同时还使用like参数(MySQL LIKE)?

我有以下工作,但仅适用于确切的值:

public function search()
{

    $params = Input::all();

    return Records::where($params)->get();

}
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-4

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

PHP/Laravel/eloquent - 将动态数量的行插入数据库

我正在使用Laravel框架,使用eloquent与我的数据库进行交互.

我有一个表格,我发布到我的控制器.此表单包含由用户添加的"标记".用户可以根据需要添加任意数量的标签.

我想POST标签,然后在我的控制器中,将每个标签插入一个新的表行,如下所示:

        $tag = new Tag;
        $tag->user_id   = Input::get('user_id');
        $tag->tag_name = Input::get('tag_name');
        $tag->save();
Run Code Online (Sandbox Code Playgroud)

我该怎么处理?起初我想把每个标签放到一个数组中,POST数组,然后在控制器中我循环遍历每个元素,将它们插入数据库.

看到这里的代码,这实际上是一个先前的堆栈溢出问题

但经过一番搜索,我得出的结论是你不能发布一个数组.

所以另一种方法是将每个数组值作为隐藏表单类型POST.问题在于如何告诉我的控制器要插入多少个标签(以及它们的行).

我希望这很清楚,在此先感谢.


编辑:仍有一些麻烦

编辑2:更改了代码以在javascript中包含'i'变量以及POST时使用的新数组.

这是用户生成的输入标签的样子

$("#tagsbox")
        .append("<div class='displaytag'><i>"+tag+"</i><input type='hidden' name='tags["+i+"]["+user_id+"]' value="+user_id+"><input type='hidden' name='tags["+i+"]["+tag+"]'value="+tag+">")
Run Code Online (Sandbox Code Playgroud)

这是提交后POST数据的样子

Array
(
[user_id] => 12
[lat] => 50.80589
[lng] => -0.02784
[spot_name] => test spot
[tags] => Array
    (
        [1] => Array
            (
                [12] => 12
                [tag1] => tag1
            )

        [2] => Array
            (
                [12] => 12
                [tag2] => tag2
            )

        [3] => Array
            (
                [12] => 12
                [tag3] …
Run Code Online (Sandbox Code Playgroud)

php insert dynamic laravel eloquent

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

在Laravel Eloquent中使用联接获取多个记录

我很擅长使用Laravel,因此对Eloquent来说.我对Eloquent的桌子关系感到困惑.

现在我了解了如何实现简单连接,例如Laravel 4.2文档中的示例,该文档对于一对多关系,其中a comment属于一个post,但a post可以有很多comments.他们使用这种语法从一篇文章中获取评论:

Post::find(1)->comments;
Run Code Online (Sandbox Code Playgroud)

在MySQL中,它可能是:

SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
WHERE posts.id=1
Run Code Online (Sandbox Code Playgroud)

如果我想要得到的结果是这样的,不仅仅是一行:

SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
Run Code Online (Sandbox Code Playgroud)

根据我上面给出的例子,我知道它没有多大意义.但是我如何在Eloquent中做到这一点?

为了提供更多细节,我实际上要做的是显示我的两个表的连接结果,assets以及asset_classifications.一个asset属于一个asset_classification,并且asset_classification有许多assets.

我正在尝试显示assets包含其中的表格数据asset_classifications.在MySQL中,它是这样的:

SELECT * FROM assets
JOIN asset_classifications ON asset_classifications.id=assets.classification_id
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Eloquent中执行它?

laravel eloquent laravel-4

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

Laravel集团按日期

我正在尝试为以下sql进行elqouent查询,

select sum(w.total_item_count) as Day_count, w.created_at as created_at from `sales_flat_orders` as `w` group by DATE(`w`.`created_at`) order by `w`.`created_at` asc
Run Code Online (Sandbox Code Playgroud)

我试过这个

$orderbydate = DB::table('sales_flat_orders as w')
                ->select(array(DB::Raw('sum(w.total_item_count) as Day_count'),DB::Raw('DATE(w.created_at) as created_at')))
                ->groupBy('w.created_at')
                ->orderBy('w.created_at')
                ->get();
Run Code Online (Sandbox Code Playgroud)

我在sql查询中得到正确的输出,但没有在雄辩的查询中,请帮助,谢谢.

mysql eloquent laravel-4

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

Laravel关系并使用push()方法

我正在尝试找到一种不同的方法来保存/更新给定模型及其与数据库的关系.

基本上我有一个"作者"页面的表格,可以添加多个"书籍".当然,"作者"和"书"模型具有一对多的关系.

根据laravel官方教程,您必须:

  1. 将所有输入数据添加到"作者"模型
  2. 创建"作者"模型并将其保存到DB中
  3. 对于每个"Book"输入数据
  4. 使用$ author-> books() - > save($ book)创建每个"Book"模型并将其保存到DB中;

Laravel还指出"有时您可能希望不仅保存模型,还保存其所有关系.为此,您可以使用push方法:$ user-> push();" .

但我找不到任何关于如何用"Book"关系填充"Author"模型的教程,实际上使用了push()方法

我正在寻找这样的东西:

$author = new Author();
$author->name = "Bill Jobs";
$author->phone = "555 - 123456";

// fill model with relations

$author->addRelation($relationsArray)

if($author->push())
{ 
   // ....
}
Run Code Online (Sandbox Code Playgroud)

同样应该用于更新"作者":首先删除已存储的关系,而不是保存新关系

php entity-relationship laravel eloquent laravel-4

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