Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用Laravel在带有查询生成器的模型中工作?_Laravel_Eloquent_Laravel Query Builder - Fatal编程技术网

是否可以使用Laravel在带有查询生成器的模型中工作?

是否可以使用Laravel在带有查询生成器的模型中工作?,laravel,eloquent,laravel-query-builder,Laravel,Eloquent,Laravel Query Builder,我想知道是否有可能在一个模型中使用查询生成器在两个表之间建立连接,我不想使用Elount 这是我的模型 <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use DB; class Tbl_Perimetro extends Model { puplic function perimetros(){ $carteras = DB::table('tbl_perimetros') ->

我想知道是否有可能在一个模型中使用查询生成器在两个表之间建立连接,我不想使用Elount

这是我的模型

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DB;

class Tbl_Perimetro extends Model
{
puplic function perimetros(){
$carteras = DB::table('tbl_perimetros')
        ->join('tbl_equipo_postventaatcs', 'tbl_equipo_postventaatcs.id', '=', 'tbl_perimetros.postventaatc_id')
        ->join('tbl_lista_carteras', 'tbl_equipo_postventaatcs.carteras_id', '=', 'tbl_lista_carteras.id')
        ->get();

return $carteras;
}
}

如果您只想使用查询生成器,您可以这样做。但我真的建议使用雄辩的方法。
此外,重要的是要了解模型的变体、附加项和作用域选项,这些选项不仅可以帮助您创建查询生成器

其他任命:

  • DB::table('tbl_perimetros')
    在此模型中可替换为
    $this
  • 不要忘记返回方法的
    return
  • 请尝试
    protect$appends=['perimetros']
    并将方法重命名为
    getperimetrosattribute
    ,以将周长作为模型对象中的一项返回

我想在模型中使用查询生成器来创建表的联接,我不想使用eloquent hasMany或Belong方法,因为perimetros()方法中缺少一个
return
,您可以通过
$t=new Tbl_Perimetro()调用该方法$t->perimetos()类似这样的东西?我更新了我的问题。。但是我仍然没有得到任何东西。你把方法放在模型中为什么u
返回视图
,你需要返回
$carteras
。我不太了解你。。。像这样的?我想让控制器和模型与视图一起工作。BladeThank非常想知道答案..如何在一个工作正常的模型中使用查询生成器转换代码。。因为我犯了很多错误首先,什么错误?通常,从迁移开始,良好的迁移是良好模型关系的关键。在开始编写代码、设计表和关系之前,先绘制数据库。使用正确的字段类型和外键将此暂存转移到迁移。变形的关系是强大的,但需要更多的关注。第二步是编写模型。开始编写在迁移中构建的关系。在这种情况下,似乎有3种不同的模型:carteras、postventaatcs和perimetros,所有这些表都应该有英文名称,不带tbl_uuu前缀。eloquent使用表中的名称自动处理关系。同样,forenig键也应该是英文的,但是您在add\u id to then中是正确的。