<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
// ①
protected $fillable = [
'url', 'author', 'posted', 'articleTitle', 'tags', 'site'
];
// ②
public $timestamps = false;
}
① $fillable はデータの変更の可能性があるカラム名を指定します 今回は「とりあえず」の確認がしたいので全カラムを登録しています。
DB の窓口である Model とやりとりしたり、それ以外の処理をしたり、両方をしたりするのが Controller です
php artisan make:controller 〇〇Controller
〇〇は頭大文字単数形 例:User
Controller の編集
app/Http/Controllers/ArticleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
// 追加
use Illuminate\Support\Facades\DB;
class ArticleController extends Controller
{
public function getArticle () {
// ①
$articles = DB::table('articles')->get()->toArray();
// ②
return view("index")->with("articles", $articles);
}
}
マイグレーションファイル作成時に付けたテーブル名を対象とし(①)、ビューファイルに配列として「$articles」を渡している点(②)に注目してください! 後はお察しの通り、コレをループで回せば DB のデータを表示できるわけですね!
<?php
use Illuminate\Database\Seeder;
use App\Models\Article; // 書き忘れやすい
// ①
class ArticleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Article::truncate(); // 既存データがある場合邪魔なので
for ($i = 1; $i <= 100; $i++) {
// ②
DB::table('articles')->insert([
'url' => 'sample_' . (string) $i . '.com',
'author' => 'author_' . (string) $i,
'articleTitle' => 'title_' . (string) $i,
'tags' => "野獣先輩, 女の子",
'site' => "淫夢マニア",
'posted' => '1919/08/10',
]);
}
}
}
次に、最初からある「seeds/DatabaseSeeder.php」の編集をします
seeds/DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// $this->call(UsersTableSeeder::class);
// ③
$this->call(ArticleSeeder::class);
}
}
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
// Route::get('/', function () {
// return view('welcome');
// });
// Route::get('/hello', 'HelloController@index');
// ①
Route::get('/', 'ArticleController@getArticle');