После использования моей формы для создания проектов я могу увидеть список созданных проектов (заголовок (строка), код (строка), домены (раскрывающийся список), владельцы (выпадающий список) вместо того, чтобы показывать имя домена или владельца, выбранного ранее в раскрывающемся списке, я могу видеть только идентификатор. Я не знаю, как это исправить.Как отобразить выпадающий список сохраненных данных laravel
вот моя миграция create_projects_table:
public function up()
{
Schema::create('pros', function (Blueprint $table) {
$table->increments('id', true);
$table->string('title');
$table->string('code');
$table->integer('domain_id')->unsigned();
$table->foreign('domain_id')->references('id')->on('domains');
$table->integer('owner_id')->unsigned();
$table->foreign('owner_id')->references('id')->on('owners');
table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('projects');
}
ProjectController:
public function index(Request $request)
{
//
$projects = Project::orderBy('id','DESC')->paginate(5);
return view('projects.index',compact('projects'))
->with('i', ($request->input('page', 1) - 1) * 5);
}
public function create()
{
$domains = Domaine::all('nameDomain', 'id');
$owners = Owner::all('nameOwner', 'id');
return view('projects.create', compact('domains', 'owners'));
}
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required',
'code' => 'required',
'owner_id' => 'required',
'domain_id' => 'required'
]);
Project::create($request->all());
return redirect()->route('projects.index')
->with('success','Project created successfully');
}
public function show($id)
{
$domains = Domain::all('nameDomain', 'id');
$owners = Owner::all('nameOwner', 'id');
$project = Project::find($id);
return view('projects.show',compact('project', 'domains', 'owners'));
}
show.blade.php:
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Quartier:</strong>
{{ $pro->quartier_id }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Responsable:</strong>
{{ $pro->responsable_id }}
</div>
</div>
index.blade.php:
<!-- ........ -->
<table class="table table-bordered">
<tr>
<th>No</th>
<th>title</th>
<th>code</th>
<th>domain_id</th>
<th>owner_id</th>
<th width="280px">Action</th>
</tr>
@foreach ($projects as $key => $project)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $project->title }}</td>
<td>{{ $project->code }}</td>
<td>{{ $project->domain_id}}</td>
<td>{{ $project->owner_id}}</td>
<!-- ...... -->
Project.php:
class Pro extends Model
{
//
public $fillable = ['title','code','domain_id', 'owner_id'];
}
это то, что я получил после добавления dd ($ projects); :
LengthAwarePaginator {#285 ▼
#total: 3
#lastPage: 1
#items: Collection {#327 ▼
#items: array:3 [▶]
}
#perPage: 5
#currentPage: 1
#path: "http://127.0.0.1/Projet_PAC/Projet_PAC/public/pros"
#query: []
#fragment: null
#pageName: "page"
}
, а затем после добавления {{дд ($ project-> домена)}} в качестве первой линии в течение каждого цикла
Domain {#339 ▼
#table: "domains"
+fillable: array:1 [▼
0 => "domain"
]
#connection: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:4 [▶]
#original: array:4 [▼
"id" => 2
"nameDomain" => "domaine2"
"created_at" => "2017-02-01 22:55:25"
"updated_at" => "2017-02-01 22:55:25"
]
#relations: []
#hidden: []
#visible: []
#appends: []
#guarded: array:1 [▼
0 => "*"
]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
+exists: true
+wasRecentlyCreated: false
}
Вы можете показать, что 'dd ($ project)' показывает перед вашей обратной линией в функции индекса? – Onix
Извините, я не понимаю, что вы просили меня сделать, не могли бы вы объяснить это больше? – Naj
после этой строки '$ projects = Project :: orderBy ('id', 'DESC') -> paginate (5);' в вашем ProjectController добавьте этот 'dd ($ projects)'. Затем перейдите на свою страницу индекса на своем веб-сайте. И вы должны уметь видеть, что содержит проект $, и вставить его в свой вопрос, чтобы мы могли его увидеть. – Onix