程式CODE

2016年11月29日 星期二

laravel5.3 models操作

一、可使用 migration建資料表,或其他方式

二、填入資料

三、建立model
  在 ./app 下建一個 Post.php,內容如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
}

特別注意的是,這裡首字大寫,單數,而就會自動抓資料表為小寫,複數
除非

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
  protected $table = "posts ";  ##指定資料表名稱
  public $timestamps = false;  ##取消時間戳記,記得要把遷移檔中的刪掉
}


或是下指令:

php artisan make:model Post

四、在 ./routes/web.php
Route::get('test2', function () {
    $test=App\Post::where('title','=','test2')->first();
echo $test->id;
});

同樣程式,若寫在controller上,就記得要 use App\該model

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;

class TestController extends Controller
{
    public function index()
    {
      $test=Post::where('title','=','test2')->first();
      echo $test->title;
    }


九、可用的方法
$test=App\Post::first();  ##查第一筆資料
echo $test->title;  ##查欄位 title
$test=App\Post::find(1);  ##查第一筆資料
echo $test->title;  ##查欄位 title

$test=App\Post::where('title','=','test2')->first();  ##where
echo $test->id;  ##查欄位 id
$test=App\Post::all();  ##全部

十、eloquent orm操作
在controller裡
新增1:

use App\Post;

$post = new Post;
$post->title = $request->input('title');
$post->save();

新增2(靜態):
Post::create($request->all());


取新增的id:
$insertedId = $post->id;

更新1:
$post = Post::find(24);
$post->title = $request->input('title');
$post->save();


更新2(靜態):
$post = Post::find($id);
$post->update($request->all());


刪除1:
$user = Post::find(1);
$user->delete();

刪除,依where
$affectedRows = Post::where('votes', '>', 100)->delete();


沒有留言:

張貼留言