2017-01-31 60 views
0

让我解释一下! 我有我的应用程序使用的普通PHP的API(返回JSON)。自定义查询在Laravel的自定义模型

现在我做一个网站Laravel 5.4表明,用户可以与使用API​​连接的移动应用中看到相同的数据。

的问题?我必须在我的api中遵循相同的逻辑(因为我需要得到相同的结果)。我需要列出数据,但不是直接来自我的表中的一个,而是来自一个自定义查询,然后查询的这个结果我需要做一些逻辑,然后创建我想要返回到view.blade.php的模型毕竟循环。

当然,与Laravel的工作,我没有使用任何API,因为我已经在服务器端。

这是可以做到我想要什么? 这是我的自定义模型的例子(我把图像从我的我的API的JSON,但我需要一个自定义模式,以获得相同的结果就像我上面说的)我要去有查询后,并提出一些后在该查询结果的逻辑:

enter image description here

+0

我所看到的是,打造'有*门,窗,座椅,月,年,星期,日期*和有* ID的'part'模型,零件名称,对象ID *和'object'模型与*名称,状态,部分ID *东西'模型*类似的东西。本身,ORM将映射彼此相关的对象 - 嗯,我想说,一对多关系最终会导致一部分持有许多部分的集合。另外,不要循环json,如果可能,请使用['toJson()'](https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Model.html#method_toJson)。 –

+0

建立一个像你说的模型是好的,我不知道如何进行自定义查询,然后将我的结果与我的自定义模型进行匹配。然后我通过我的看法模型 –

+0

“我需要列出数据,但不是直接从我的表中的一个,是从一个自定义查询” 你的意思是你没有直接连接到数据库?那么你如何获得这些数据?通过API调用? 无论如何,您不一定需要为自定义查询创建自定义模型(如果它非常复杂)。考虑使用查询对象 –

回答

1

按你意见,你有一个自定义查询,并从你需要做的模型。您可以按照以下步骤操作。

创建迁移

public function up() 
{ 
    DB::statement(" 
    CREATE VIEW your_view_name 
    AS 
    SELECT 
     -- your query goes here 
    "); 
} 

运行迁移与php artisan migrate

然后建立创建MySQL视图模型。

use Illuminate\Database\Eloquent\Model; 

class YourClassName extends Model 
{ 
    protected $table = 'your_view_name'; 
} 

然后,你可以使用你的模型,因为你会正常使用。

+0

@Faustino Gagneten这个答案能帮助你吗? – Gayan