-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathnewcontroller.php
210 lines (166 loc) · 7.49 KB
/
newcontroller.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
//İşlem yapacağımız model dosyamız tanıtıldı
use App\kullanici;
use App\Image;
use App\Makale;
use App\Urun;
use App\Resim;
class newcontroller extends Controller
{
//index methodu
/*
* Bu method içerisinde ORM kullanarak sql işlemleri gerçekleştiriyorum.
*/
public function index(){
/*
* query builder içerisinde kullandığım tüm methodlar ORM içinde geçerlidir.
*/
//ORM Kullanarak insert işlemi Örneği
$kullanici = new kullanici;
$kullanici->name = "Ömer Faruk";
$kullanici->surname = "KESMEZ";
$kullanici->email = "info@ofkeyazilim.com";
$kullanici->save();
//ORM Kullanrak insert işlemi2
//Bu yöntemi kullanacaksak model dosyamız içerisinde fillable yada guarded dizilerini tanılamalıyız.
kullanici::create(["name"=>"Halil İbrahim","surname"=>"KESMEZ"]);
//ORM Kullanarak Update İşlemi Örneği
$kullanici = kullanici::find(1);
$kullanici->name = "Ömer Faruk";
$kullanici->surname = "KESMEZ";
$kullanici->email = "ofke@ofkeyazilim.com";
$kullanici->save();
//ORM Update işlemi 2
kullanici::find(1)->update(['status'=>1]);
//ORM Delete işlemleri
kullanici::where('id',">",5)->delete();
//id değeri 1 olan kullanıcı verilerini döndürür
$result = kullanici::find(1);
//kullanici tablosundan id değeri 2 den büyük olanların içinde id değeri en büyük olan 1 değer döndürecek.
$result = kullanici::where("id",">",2)->orderBy('id','desc')->first();
//one to one örneği
//Kullanıcı id değerine göre image tablosundan verileri getiriyor.
$result = kullanici::find(1)->image;
if($result){//Eğer kullanıcıya ait resim varsa
//İmage tablosundan tek bir sütun getiriyor.
$result = kullanici::find(1)->image->image;
$result = Image::find(1)->kullanici;
$result = Image::find(1)->kullanici->name;
}
//one to many örneği
//Kullanıcı id değeri 1 olan kişi için makale listesi alınıyor
$result = kullanici::find(1)->makaleler;
if($result!="[]"){//Eğer kullanıcıya ait makale bulunuyor ise
//id değeri 1 olan makaleyi yazan kullanıcı bilgileri alınıyor.
$result = Makale::find(1)->kullanici;
}
//Almış olduğum makale listesini view içerisine göndereyim
//makaleler.blade.php içerisinde makalelerimi listeliyorum.
// return view("makaleler",compact('result'));
//Many To Many İlişkisi
$result = kullanici::find(1)->urunler;
$result = Urun::find(1)->kullanicilar;
//Has Many Through İlişkisi
//1 idli makaleyi yazan kişinin resim bilgileri alınıyor.
$result = Makale::find(1)->kullanciResimler;
//One to Many Polimorphic Relatioships örneği
$result = Makale::find(1)->MakaleResimler;
$result = Resim::find(1)->image;
//Sonuçlar döndürülüyor
return dd($result);
}
//Collection işlemleri
/*
* Collection dizilerin daha kullanışlı hale gelmesini sağlayan bir sınıftır.
*/
public function collection(){
#https://laravel.com/docs/5.5/collections#method-avg adresini ziyaret et
#### TEK BOYUTLU COLLECTION #####
#
//Array bir dizi oluşturuluyor.
$data = [1,2,3,4,5,6,7,8,9,"ömer",""];
//Oluşturulan dizi collection olarak set ediliyor
$collection = collect($data);
//Ortalamasını alalım
$result = $collection->avg();
//Collection üzerine veri eklemek için içerisine 10 ve 11 değerlerini ekledim.
$result = $collection->concat([10])->concat(['name' => 11]);
//Collaction içerisinde verilen değeri arar.
$result = $collection->contains('Desk');//false döner
$result = $collection->contains(11);//true döner
//Collaction boyutu döner
$result = $collection->count();
//İki adet collactionu birleştirir ve tüm olası sonuçları döner
//E-ticaret sisteminde renk beden eşleştirmeleri gibi düşün
$result = $collection->crossJoin(['a', 'b']);
//İstenmeyen elemanlar çıkarılır
$result = $collection->diff([2, 4, 6, 8]);
//collection içerisindeki verileri sıra ile ekrana basar.
$collection = $collection->each(function ($item) {
if($item==4){
echo $item;
}
});
$collection->all();
//Aşağıdaki kod collection içerisindeki tüm dataları istenilen şekilde işler
//Bütün değerleri büyük harf yapar. ve boş olan değerleri collection içerisinden çıkarır
//Transform aksine yeni bir collection oluşturur
$collection = $collection->map(function($item) {
return strtoupper($item);
})
->reject(function ($item) {
return empty($item);
});
//Her bir collection üzerinde işlem yapmaızı ve güncelleme yapmamızı sağlar.
$collection->transform(function ($item) {
return $item * 2;
});
$collection->all();
//Collection tekrar array yapmak
$result = $collection->toArray();
//Collection yapımızı json yapmak için
$result = $collection->toJson();
#
#### TEK BOYUTLU COLLECTION SON#####
return dd($result);
//Oluşturduğumuz bu collectionu wiew dosyamıza gönderelim
// return view('collection', compact('collection'));
}
/*
* 2 boyutlu array ile yapılan collection işlemleri
*/
public function collection2() {
//2 boyutlu dizimiz tanmlandı
$array = ["ad"=>"Ömer","ad"=>"Yasin","ad2"=>"Faruk","soyad"=>"KESMEZ","il"=>"BURSA"];
//2 boyutlu Collection oluşturuluyor
$collection = collect($array);
//oluşturulan collection ekrana yazılıyor // view içerisinde kullanılıyor olabilir.
$collection->all();
//Collection değerleri içersinde arama yapar
$result = $collection->contains('Faruk');//true döner
//Üç boyutlu bir array içerisinde arama yapmak için
//Üç boyutlu bir collection
$collection3 = collect([
['product' => 'Desk', 'price' => 200],
['product' => 'Chair', 'price' => 100,"il"=>"BURSA"],
['product' => 'Chair', 'price' => 100,"il"=>"BURSA"],
]);
$result = $collection3->contains('price', 200);
//Collection eleman sayısı döner
$result = $collection3->count();
//2 buyutlu collection içerisinde belirtilen değerler çıkarır
$result = $collection->diffAssoc([
'il' => "BURSA"
]);
//2 buyutlu collection içerisinde belirtilen anahtara sahip değeri siler
$result = $collection->diffKeys([
'il' => "ANGARA"
]);
//3 boyutlu collection içerisinde verilen anahtara uygun olarak gruplar
$result = $collection3->groupBy('product');
$result->toArray();
return dd($result);
}
}