簡體   English   中英

laravel 將值從控制器傳遞給模型

[英]laravel passing value from controller to model

我有一個基本控制器,它根據每個請求的域名獲取某些默認屬性。 這些包括app_idlanguage_id

在我的模型中設置這些值的推薦方法是什么,例如,如果我嘗試創建一個新的Post模型,它將通過我的 base_controller.h 中定義的值設置app_idlanguage_id

親切的問候任何回應。

您可以使用會話來存儲您的 app_id 和 language_id,並在需要時從會話中獲取它。

從這里檢查如何在 Laravel 中使用會話

您可以按照評論中的建議使用__consruct方法。

這是另一種選擇:-

你的控制器.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\YourModel;

class YourController extends Controller
{

    public function callModelStaticMethod()
    {
        $data = ['appId'=>4, 'languageId'=>5];
        YourModel::passDataToModelMethod($data);        
    }
}

你的模型.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{

    public static function passDataToModelMethod($data)
    {
      var_dump($data);
      // Write your business logic here.
      // $newObj = new self;
      // $newObj->app_id = $data['app_id'];
      // $newObj->language_id = $data['languageId'];
      // $newObj->save();
    }

}

@ravi ...只是對您的代碼進行了一些更正。 你不能直接從模型調用你的方法。

YourModel::passDataToModelMethod($data);   

以上不起作用,您需要執行以下操作

$insertData=new YourModel();
$insertData->passDataToModelMethod($data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM