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;