Kodlar budur hocam.
"Hikaye Genel Normal Yazı" gelmesi lazım. Gelmiyor.
Sorgu
$q = Yazi::whereHas('kategoriler', function($query) {
$query->whereIn('kategori_id', [25,57,63]);
})
->take(5)
->get();
dd($q->toArray());
Yazı Model
const CREATED_AT = 'olusturma_tarihi';
const UPDATED_AT = 'guncelleme_tarihi';
const DELETED_AT = 'silinme_tarihi';
protected $table = 'yazi';
protected $guarded = [];
/**
- @return BelongsToMany
*/
public function kategoriler()
{
return $this->belongsToMany('App\Models\Kategori', 'yazi_kategori', 'yazi_id', 'kategori_id');
}`
Kategori Model
const CREATED_AT = 'olusturma_tarihi';
const UPDATED_AT = 'guncelleme_tarihi';
const DELETED_AT = 'silinme_tarihi';
protected $table = 'kategori';
protected $guarded = [];
/**
- @return BelongsToMany
*/
public function yazilar()
{
return $this->belongsToMany('App\Models\Yazi', 'yazi_kategori', 'yazi_id', 'kategori_id');
}`
Tablolar ve Veriler
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS kategori;
CREATE TABLE kategori (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
kategori_adi varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
onay tinyint(1) NOT NULL DEFAULT 0 COMMENT 'kategorinin aktif/pasif olma durumu',
olusturma_tarihi timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
guncelleme_tarihi timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0),
silinme_tarihi timestamp(0) NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
INSERT INTO kategori VALUES (1, 'Şiir', 1, '2021-08-11 01:41:32', '2021-08-11 01:41:48', NULL);
INSERT INTO kategori VALUES (2, 'Roman', 0, '2021-08-11 01:41:32', '2021-08-11 01:41:32', NULL);
INSERT INTO kategori VALUES (3, 'Öykü', 1, '2021-08-11 01:41:32', '2021-08-11 01:41:50', NULL);
INSERT INTO kategori VALUES (25, 'Hikaye', 0, '2021-08-11 01:41:32', '2021-08-11 01:41:32', NULL);
INSERT INTO kategori VALUES (27, 'Röportajlar', 0, '2021-08-11 01:41:32', '2021-08-11 01:41:32', NULL);
INSERT INTO kategori VALUES (54, 'Dosyalar', 1, '2021-08-11 01:41:32', '2021-08-11 01:41:51', NULL);
INSERT INTO kategori VALUES (55, 'Kategoriler', 0, '2021-08-11 01:41:32', '2021-08-11 01:41:32', NULL);
INSERT INTO kategori VALUES (56, 'Özel İçerik', 1, '2021-08-11 01:41:32', '2021-08-11 01:41:59', NULL);
INSERT INTO kategori VALUES (57, 'Genel', 0, '2021-08-11 01:41:32', '2021-08-11 01:41:32', NULL);
INSERT INTO kategori VALUES (58, 'Yabancı', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:52', NULL);
INSERT INTO kategori VALUES (59, 'Orta Asya', 0, '2021-08-11 01:41:33', '2021-08-11 01:41:33', NULL);
INSERT INTO kategori VALUES (60, 'Selçuklu', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:54', NULL);
INSERT INTO kategori VALUES (61, 'Osmanlı 1. Dönem', 0, '2021-08-11 01:41:33', '2021-08-11 01:41:33', NULL);
INSERT INTO kategori VALUES (62, 'Osmanlı 2. Dönem', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:53', NULL);
INSERT INTO kategori VALUES (63, 'Normal', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:57', NULL);
INSERT INTO kategori VALUES (65, 'Video Yazı', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:56', NULL);
INSERT INTO kategori VALUES (66, 'Özel Yazı', 0, '2021-08-11 01:41:33', '2021-08-11 01:41:33', NULL);
DROP TABLE IF EXISTS yazi_kategori;
CREATE TABLE yazi_kategori (
yazi_id int(10) UNSIGNED NOT NULL,
kategori_id int(10) UNSIGNED NOT NULL,
INDEX yazi_id(yazi_id) USING BTREE,
INDEX kategori_id(kategori_id) USING BTREE,
CONSTRAINT yazi_id FOREIGN KEY (yazi_id) REFERENCES yazi (id) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT kategori_id FOREIGN KEY (kategori_id) REFERENCES kategori (id) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
INSERT INTO yazi_kategori VALUES (1, 25);
INSERT INTO yazi_kategori VALUES (1, 57);
INSERT INTO yazi_kategori VALUES (1, 63);
INSERT INTO yazi_kategori VALUES (2, 25);
INSERT INTO yazi_kategori VALUES (2, 58);
INSERT INTO yazi_kategori VALUES (2, 27);
INSERT INTO yazi_kategori VALUES (3, 1);
INSERT INTO yazi_kategori VALUES (3, 57);
INSERT INTO yazi_kategori VALUES (3, 63);
INSERT INTO yazi_kategori VALUES (4, 2);
INSERT INTO yazi_kategori VALUES (4, 58);
INSERT INTO yazi_kategori VALUES (4, 65);
INSERT INTO yazi_kategori VALUES (5, 25);
INSERT INTO yazi_kategori VALUES (5, 63);
INSERT INTO yazi_kategori VALUES (6, 3);
INSERT INTO yazi_kategori VALUES (6, 57);
INSERT INTO yazi_kategori VALUES (6, 63);
DROP TABLE IF EXISTS yazi;
CREATE TABLE yazi (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
baslik varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
onay tinyint(1) NOT NULL DEFAULT 0 COMMENT 'yazının yayınlanma/aktif olma durumu',
yayin_tarihi timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
olusturma_tarihi timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
guncelleme_tarihi timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0),
silinme_tarihi timestamp(0) NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
INSERT INTO yazi VALUES (1, 'Hikaye Genel Normal Yazı', 1, '2021-08-11 01:41:33', '2021-08-11 01:41:33', '2021-08-11 01:42:23', NULL);
INSERT INTO yazi VALUES (2, 'Hikaye Yabancı röportaj Yazı', 1, '2021-08-11 01:41:33', '2021-08-07 01:41:33', '2021-08-11 01:43:06', NULL);
INSERT INTO yazi VALUES (3, 'Şiir Genel Normal Yazı', 0, '2021-08-11 01:41:33', '2021-08-06 01:41:33', '2021-08-11 01:43:01', NULL);
INSERT INTO yazi VALUES (4, 'iran Yabancı video Yazı Yazı', 1, '2021-08-11 01:41:34', '2021-08-04 01:41:34', '2021-08-11 01:42:53', NULL);
INSERT INTO yazi VALUES (5, 'Hikaye Normal Yazı', 1, '2021-08-11 01:41:34', '2021-08-03 01:41:34', '2021-08-11 01:42:48', NULL);
INSERT INTO yazi VALUES (6, 'Öykü Genel Normal Yazı', 1, '2021-08-11 01:41:34', '2021-08-02 01:41:34', '2021-08-11 01:42:44', NULL);
SET FOREIGN_KEY_CHECKS = 1;