从我之前的问题,我已经从用户那里得到了这个代码。
// app/routes.php
Route::get('characters', 'CharactersController@all');
Route::get('characters/{name}', 'CharactersController@detail');
// app/controllers/CharactersController.php
class CharactersController extends BaseController
{
public function all()
{
// show all characters
}
public function detail($name)
{
// find character by name & show detail for example
return View::make('acc.test');
}
}
// app/views/acc/test.blade.php
// HTML::style('css/style.css') loads CSS file located at public/css/style.css
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
{{ HTML::style('css/style.css') }}
</head>
<body>
</body>
</html>
另外,搜索功能:
<form action="{{ URL::action('CharactersController@search') }}" method="get">
<input type="text" name="search-term">
<input type="submit" value="Search">
public function search()
{
$name = Input::get('search-term');
$searchResult = Character::where('name', '=', $name)->get();
....
}
Route::get('characters/search', 'CharactersController@search');
我怎么能在:
public function detail($name) { // find character by name & show detail for example return View::make('acc.test'); }
我怎么能按名字找到这个角色?我尝试过像
这样的事情$name = $player->name
(我有一个叫做玩家的模型,我也改变了角色::在哪里玩到哪里),我有什么要插入的?另外,我怎么能在视图中显示它?
所以我的意思是当我按名称搜索玩家时,会显示每个特定玩家的玩家名称($ player-&gt; name)。
我是否还必须将模型中的关系更改为HasMany或类似的东西?
答案 0 :(得分:1)
你可以这样做
public function detail($name) {
$player = Player::where('name', '=', $name)->first();
}
如果更多玩家可以拥有相同名称,我宁愿传递ID而不是名称,所以在这种情况下使用此解决方案
public function detail($id) {
$player = Player::findOrFail($id);
}