Birkaç Hata Çözümü ve Database Yardım

Turan hocam hayırlı ramazanlar;

Hata: 1 Klavuzda

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
{!! Form::hidden('_token', ['value' => csrf_token()]) !!}

if (csrf_check(Request::post('token'))) {
echo 'Token doğru';
} else {
echo 'Token doğru değil';
}

input name adına _token eklemişsiniz fakat post ile kontrol ederken 'token' yazdığından (yani önünde alt tire_ olmadığından hata verir) küçük ama yinede düzeltirseniz faydalı olur okuyanlara.

Hata 2:
Menümüzde aktif olan sayfayı göstermek için

<li @if(Request::getSegment(2)=='uyeler' AND Request::getSegment(3)=='duzenle')class="kf_dik_menu_aktif"@endif><a href="{{ link_to('admin/uyeler') }}">Üyeler</a></li>


Hata: Undefined offset: 2 | View layout:
getSegment olmayan değer ile karşılaşıyor.

Çözüm:

libs/http/request sınıfında 312. satır
değiştir.
public function getSegment($index)
{
if(empty($this->segments()[$index])){
return null;
}else{
return $this->segments()[$index];
}
}

--------------------------------
Turan hocam 2 aydır kodladığım bir proje var hemen hemen hergün girip baktım acaba çoklu veritabanını eklediniz mi diye projemi yayınlanamıyorum sizi bekliyorum. Beklerken ben eklemek istedim geçici olarak. Tıkandım kaldım yardımcı olur musunuz ?
App/Database.php
içeriğini şöyle değiştirdim.

'db_1' => [
'db_driver' => 'mysql',
'db_host' => 'localhost',
'db_user' => 'root',
'db_pass' => '',
'db_name' => 'test',
'db_charset' => 'utf8',
'db_collation' => 'utf8_general_ci',
'db_prefix' => '',
],

'db_2' => [
'db_driver' => 'mysql',
'db_host' => 'localhost',
'db_user' => 'root',
'db_pass' => '',
'db_name' => 'deneme',
'db_charset' => 'utf8',
'db_collation' => 'utf8_general_ci',
'db_prefix' => '',
],


Libs/Database/Db.php değiştirdim.

// DB config items
protected $config;

// Multi DB
public $multi_db = 'test';

/**
* Initializing
*
* @return object
*/

public function __construct(){

// Getting db config items
$this->config = config('database');

// Setting prefix
$this->prefix = $this->config[$this->multi_db]['db_prefix'];

$dsn = '';
// Setting connection string
if ($this->config[$this->multi_db]['db_driver'] == 'mysql' || $this->config[$this->multi_db]['db_driver'] == 'pgsql' || $this->config[$this->multi_db]['db_driver'] == '') {
$dsn = $this->config[$this->multi_db]['db_driver'] . ':host=' . $this->config[$this->multi_db]['db_host'] . ';dbname=' . $this->config[$this->multi_db]['db_name'];
} elseif ($this->config[$this->multi_db]['db_driver'] == 'sqlite') {
$dsn = 'sqlite:' . $this->config[$this->multi_db]['db_name'];
} elseif ($this->config[$this->multi_db]['db_driver'] == 'oracle') {
$dsn = 'oci:dbname=' . $this->config[$this->multi_db]['db_host'] . '/' . $this->config[$this->multi_db]['db_name'];
}

// Connecting to server
try
{
$this->pdo = new PDO($dsn, $this->config[$this->multi_db]['db_user'], $this->config[$this->multi_db]['db_pass']);
$this->pdo->exec("SET NAMES '" . $this->config[$this->multi_db]['db_charset'] . "' COLLATE '" . $this->config[$this->multi_db]['db_collation'] . "'");
$this->pdo->exec("SET CHARACTER SET '" . $this->config[$this->multi_db]['db_charset'] . "'");
$this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
}
catch(PDOException $e)
{
throw new ExceptionHandler("DB error", "Can not connect to Database with PDO.<br><br>" . $e->getMessage());
}

return $this->pdo;
}


Yapmak istediğim şu;

return DB::baglan('db_2')->table('mevzuat')->select('*')->where('belge', '!=', '')->orderBy('id', 'desc')->limit($suanki, $limit)->getAll();


Eğer özel bir sayfada başka bir veritabanı kullanacaksam baglan diye fonksiyon ile harici vt baglanıp kaldığı yerden devam etmek istiyorum.

Libs/Database/Db.php içine fonksiyon ekleyince diğer tüm table select where undefined hatası veriyor. Bu konuda uzun zamandır sizi bekliyorum yardımcı olursanız projemi yayına geçirebileceğim.

Cevaplar (1)


Turan Karatuğ
Software Developer - Creator of TitanMVC
6 ay önce

DB bağlantı işlemleri, kütüphanenin __construct() methodunda gerçekleşiyor. Dolayısıyla multi db için öncelikle bağlanılacak db'nin seçileceği bir method oluşturmanız gerek. Bu method, parametrede gönderilen db'ye bağlanma işlemini gerçekleştirmeli. Böylece __construct() methodunu devre dışı bırakmalısınız.

Cevap Yazın


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