使主要功能laravel的地方

时间:2018-06-08 15:13:15

标签: php laravel

我对laravel很新,我已经在互联网和laravel文档上搜索了答案,但没有任何内容。

我的编程方式是制作一个" main"数据库表的函数类,例如为用户创建一个具有main函数的类,所以我称之为" UsersService"并且有一些功能,如插入更新和获取或如果我有一个付款表,所以我创建一个新的类,只使用此表并调用它" PaymentsService"具备我需要的所有功能。

我一直在寻找与laravel有关的事情,但实际上并没有找到答案...... 那么伙计们,在幼虫身上制作这种东西的最好方法是什么?在控制器或模型中?

或者,如果你们有更好的方式做类似的事情,那就太好了! :)

2 个答案:

答案 0 :(得分:0)

您正在谈论Active Record模式。 Laravel使用Eloquent ORM

然后您可以在控制器中使用模型,如:

class BlogController extends Controller {

    public function index()
    {
        $posts = Posts::all()->toArray();
    }
}

虽然我更喜欢Doctrine ORM

使用的数据映射器模式

答案 1 :(得分:0)

控制器是我掌握所有主要逻辑的地方,模型是我处理它的地方。例如,我有一个带有事件控制器的程序,其中我的所有crud功能和一个事件模型定义了我与其他模型的一对多关系,并在创建新事件时调用通知类。代码发布在下面。

Incidents.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use App\Notifications\IncidentCreatedNotification;

class Incident extends Model
{

    use Notifiable;

    protected static function boot(){

        parent::boot();

        self::created(function($model){
            $model->notify(new IncidentCreatedNotification());
        });
    }

    //Table Name
    protected $table = 'incidents';

    //Primary Key
    public $primaryKey = 'id';

    public function user(){
        return $this->belongsTo('App\User');
    }
    public function status(){
        return $this->belongsTo('App\Status');
    }
    public function incidentNotes(){
        return $this->hasmany('App\IncidentNotes');
    }

    public function routeNotificationFor($driver){
        //dd(openssl_get_cert_locations());
        //dd(config('app.slack_webhook'));
        return config('app.slack_webhook');
    }

}

IncidentsController.php(删除逻辑)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Incident;
use App\IncidentNotes;
use Validator;

class IncidentsController extends Controller
{

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {

    }

    /**
     * Destroys the Incident 
     *
     */
    public function destroy($id)
    {

    }

}

是什么帮助我更好地理解了laravel:

Laracasts- https://laracasts.com/skills/laravel

laravel from scratch series- https://www.youtube.com/watch?v=EU7PRmCpx-0&list=PLillGF-RfqbYhQsN5WMXy6VsDMKGadrJ-&index=1