Config dosyasinda Model Kullanma

Merhaba,
Bir projemde admin modulum var ve site ayarlarim bulunuyor, bu site ayarlarini tum projede kullanmak istiyorum, Config klasorunun icine SiteOption.php diye bir dosya olusturdum icinde model kullanmaya calisiyorum fakat asagida ki hata yi aliyorum.
Site ayarlarini tum sitede genel olarak nasil kullanabilirim ?
' The use statement with non-compound name 'Model' has no effect '

Cevaplar (6)


Turan Karatuğ
Software Developer - Creator of TitanMVC
2 yıl önce

Bu şekilde bir kullanım uygun olmayacaktır. Bence bir BaseController oluşturun ve bunun içerisinde ayarları alın. Daha sonra bu ayarları kullanacağınız controller'ları bu BaseController'dan extend ederek oluşturun.
developerman
Web Developer
2 yıl önce

Bu kullanim ile ilgili ufak bir ornek paylasma sansiniz var midir ?
Turan Karatuğ
Software Developer - Creator of TitanMVC
2 yıl önce

App/Controllers dizini içerisinde bir BaseController.php dosyası oluşturun. Aşağıdaki kodları ekleyin;
<?php
namespace App\Controllers;

use System\Kernel\Controller;
use Model;

class BaseController extends Controller
{
protected $config;

public function __construct()
{
$this->config = Model::run('ModelName')->modelAction();
}
}
Daha sonra herhangi bir controller içerisinde aşağıdaki gibi kullanabilirsiniz;
<?php

namespace App\Controllers;

use BaseController;

class HomeController extends BaseController
{
public function index()
{
dd($this->config);
}
}
developerman
Web Developer
2 yıl önce

Turan hocam dediginiz gibi yaptim fakat sayfayi calistirdigim zaman 'Class 'BaseController' not found' hatasi aliyorum.

App/Controllers dizini altinda BaseController.php dosyasini olusturdum, kodlar asagidadir.

<?php
namespace AppControllers;

use SystemKernelController;
use Model;

class BaseController extends Controller
{
protected $config;

public function __construct()
{
$this->config = Model::run('SiteOption')->GetOption();
}
}


App/Controllers/Frontend dzini altinda Home.php adinda bir dosyam var onun kodu da asagidadir.

namespace AppControllersFrontend;

use BaseController;

use View;
use Model;
use Request;
use Response;
use Upload;
use Smtp;
use Mail;
use Config;

class Home extends BaseController
{
public function Application()
{
View::render('Frontend/application');
}

}
Turan Karatuğ
Software Developer - Creator of TitanMVC
2 yıl önce

BaseController'ın use statement'ı yanlış görünüyor. Aşağıdaki gibi düzeltip deneyin;
use App\Controllers\BaseController;
developerman
Web Developer
2 yıl önce

Tesekkur ederim, sorun cozuldu :)

Cevap Yazın


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]