模型的创建方式及简单使用
model的创建
可以使用artisan命令创建,默认在于 app/Http
平级的下面
php artisan make:model Article
数据库连接
laravel默认使用model名称小写+s去数据库里面找相同名字的表
查询主键
findOrFail(1)
,查询主键为1的记录,laravel默认主键名为id
$res = \App\Article::findOrFail(1);
直接拿出表里面的数据
public function show()
{
echo '<pre>';
$res = \App\Article::findOrFail(1)->toArray();
print_r($res);
}
指定表名
在model类中指定
class Article extends Model
{
protected $table = 'article';
}
指定id
在model类中指定
class Article extends Model
{
protected $table = 'article';
protected $primaryKey = 'aid';
}
调用model中的方法
lass Article extends Model
{
protected $table = 'article';
// protected $primaryKey = 'aid';
public function bbb(){
$data = $this->findOrFail(1)->toArray();
return $data;
}
}
class Home extends Controller
{
public function show(Article $aaa)
{
echo '<pre>';
// $res = \App\Article::findOrFail(1)->toArray();
$res = $aaa->bbb();
print_r($res);
}
}
视图
view的创建
只能手动创建,可以在views下建立文件夹,比如home文件夹,里面有lists.blade.php,访问就必须带上文件夹名字 return view('home.lists');
来指定访问此视图
返回数据给view
public function lists(){
$res = \App\Article::findOrFail(1)->toArray();
print_r($res['money']);
return view('home.lists',['order'=>$res]);
}
<p>金额:{{$order['money']}}</p>
CSRF
在post请求时需要csrf,get请求不需要。
在页面任何地方写个@csrf,报错419
405,get/post方式错误
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="/js/jquery.min.js"></script>
</head>
<body>
<div>用户名:<input type="text" name="username"></div>
<div>密码:<input type="password" name="pwd"></div>
<div>重复密码:<input type="password" name="repwd"></div>
<button type="button" onclick="doreg()">注册</button>
@csrf
<script type="text/javascript">
function doreg() {
var username = $.trim($('input[name="username"]').val());
var pwd = $.trim($('input[name="pwd"]').val());
var repwd = $.trim($('input[name="repwd"]').val());
if (username == '') {
return alert('请输入用户名');
}
$.post('/account/savereg', {
username: username,
pwd: pwd,
_token: $('input[name="_token"]').val()
}, function (res) {
alert(res.msg);
if (res.code == 0) {
window.location.href = '/';
}
}, 'json');
}
</script>
</body>
</html>