我是laravel的新手。我创建了一个迁移类:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateMusicsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('musics', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('artist');
$table->string('album');
$table->string('name');
$table->string('art')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('musics');
}
}
名为Music.php的模型:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Music extends Model {
protected $table = 'musics';
}
名为MainController的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Music;
class MainController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$musics = Music::all();
return view('index', compact('musics'));
}
我的问题是Music::all();
控制器的索引中没有要查看的内容,但如果我删除App\Music
并使用DB
代替Music::all()
替换为DB::table('musics')->get();
它工作良好。那是为什么?
更新: Route.php
<?php
get('/', 'MainController@index');
更新2: index.blade.php:
@foreach($musics as $music)
<span>{{ $music->title }}</span>
@endforeach
答案 0 :(得分:0)
如果我错了,请纠正我,但我不相信“收集{#144▼#items:[]}”表示返回144件物品。看起来你的数组是空的。
在php工匠修补匠里面,看看App \ Music :: all();回报。
答案 1 :(得分:0)
在你的控制器中试试这个
public function index()
{
$musics = Music::all();
return view('index', ['musics' => $musics]);
}
答案 2 :(得分:0)
确保在Model
之后在控制器中添加namespace
。在控制器的顶部你应该使用它:
namespace App\Http\Controllers;
use App\Music.php; //add this line